This forum contains outdated content and is available for reading only. Please contact technical support if you have any questions.

Notification

Icon
Error

Options
Go to last post Go to first unread
wijesena  
#1 Posted : Monday, September 4, 2006 7:23:35 PM(UTC)
wijesena

Rank: Member

Groups: Guest
Joined: 8/15/2006(UTC)
Posts: 13

I tried to run the following code which is available in the site.

The code did run with out any problem and I can also open the created image using sample metadata application comes with the library.

But when I tried to open it with Photoshop I got the following error.
“unexpected end-of-file was encountered”

When I commented out metadata writing sections all seems to work fine.

It is very strange why the images can not be open with photoshop.

I would appriceate any advice on this matter.



Code:
            using (Aurigma.GraphicsMill.Bitmap bitmap = 
           new Aurigma.GraphicsMill.Bitmap(@"C:\Temp\zion-maple-1.jpg"))
            {
                Aurigma.GraphicsMill.Codecs.JpegEncoderOptions encoderOptions =
        new Aurigma.GraphicsMill.Codecs.JpegEncoderOptions(100, false);


                //EXIF
                Aurigma.GraphicsMill.Codecs.ExifDictionary exif =
        new Aurigma.GraphicsMill.Codecs.ExifDictionary();
                exif[Aurigma.GraphicsMill.Codecs.ExifDictionary.Software] = "Aurigma Graphics Mill";

                encoderOptions.Exif = exif;

                //IPTC
                Aurigma.GraphicsMill.Codecs.IptcDictionary iptc =
        new Aurigma.GraphicsMill.Codecs.IptcDictionary();
                iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Category] = "Nature";
                iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice] = "Aurigma Inc.";
                iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Keyword] = "mountain";

                encoderOptions.Iptc = iptc;

                bitmap.Save(@"C:\Mountain2.jpg", encoderOptions);
            }

Edited by user Wednesday, December 19, 2007 2:51:14 PM(UTC)  | Reason: Not specified

Dmitry  
#2 Posted : Tuesday, September 5, 2006 5:41:29 PM(UTC)
Dmitry

Rank: Advanced Member

Groups: Guest
Joined: 8/3/2003(UTC)
Posts: 1,070

Thanks: 1 times
Was thanked: 12 time(s) in 12 post(s)
Hello,

We confirm the issue, there are some problems with saving IPTC. The update will be available with next release of Graphics Mill for .NET. If this issue is critical for you, please submit case.

Edited by user Thursday, May 22, 2008 9:38:48 PM(UTC)  | Reason: Not specified

Sincerely yours,
Dmitry Sevostyanov

UserPostedImage Follow Aurigma on Twitter!
wijesena  
#3 Posted : Tuesday, September 5, 2006 7:36:52 PM(UTC)
wijesena

Rank: Member

Groups: Guest
Joined: 8/15/2006(UTC)
Posts: 13

Any good news on this issue guys?

Janaka
Dmitry  
#4 Posted : Tuesday, September 5, 2006 8:25:14 PM(UTC)
Dmitry

Rank: Advanced Member

Groups: Guest
Joined: 8/3/2003(UTC)
Posts: 1,070

Thanks: 1 times
Was thanked: 12 time(s) in 12 post(s)
Hello Janaka,

The problem is in that IPTC specification doesn't allow category strings more than 3 symbols length. So if you replace line
Code:
iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Category] = "Nature";
by
Code:
iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Category] = "Nat";
everything works fine.

I have forwarded this issue to developer and the problem will be fixed - all category strings will be trimmed automatically while saving. To solve this problem with current compilation you should limit length of category strings by 3 symbols.

Edited by user Wednesday, December 19, 2007 2:51:45 PM(UTC)  | Reason: Not specified

Sincerely yours,
Dmitry Sevostyanov

UserPostedImage Follow Aurigma on Twitter!
wijesena  
#5 Posted : Tuesday, September 5, 2006 10:00:32 PM(UTC)
wijesena

Rank: Member

Groups: Guest
Joined: 8/15/2006(UTC)
Posts: 13

I have done the following to get the program working, since we don’t need all the IPTC fields.

So I manually set all the fields.

In our original images there is a field that shows the Image URL.

When you check from Photoshop it shows URL of client’s website. Since he sell images online it is very important that we set that field in all the images.

I could not find that field.

If I can set that field everything should be fine.

Can you tell how to access that field?

I really appreciate your effect in helping me.


Best regards,
Janaka


Code:
            Aurigma.GraphicsMill.Codecs.ExifDictionary exif = null;
            Aurigma.GraphicsMill.Codecs.IptcDictionary iptc = null;

            Aurigma.GraphicsMill.Codecs.JpegEncoderOptions encoderOptions = new Aurigma.GraphicsMill.Codecs.JpegEncoderOptions(70, false);

            using (Aurigma.GraphicsMill.Codecs.JpegReader jpegReader = new Aurigma.GraphicsMill.Codecs.JpegReader(strSourceFileName))
            {

                iptc            = jpegReader.Iptc;
                exif            = jpegReader.Exif;

            }

            if (exif == null)
            {
                exif = new Aurigma.GraphicsMill.Codecs.ExifDictionary();
            }
            
            
            if (iptc == null)
            {
                iptc = new Aurigma.GraphicsMill.Codecs.IptcDictionary();
            }

            encoderOptions.Iptc                             = new Aurigma.GraphicsMill.Codecs.IptcDictionary();

            try
            {

                encoderOptions.Iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Byline] = iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Byline];
                encoderOptions.Iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Caption] = iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.Caption];
                encoderOptions.Iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice] = iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.CopyrightNotice];
                encoderOptions.Iptc.SetItemArray(Aurigma.GraphicsMill.Codecs.IptcDictionary.Keyword, iptc.GetItemArray(IptcDictionary.Keyword));
                encoderOptions.Iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.ObjectName] = iptc[Aurigma.GraphicsMill.Codecs.IptcDictionary.ObjectName];
            }
            catch (Exception) { }

            encoderOptions.Exif = exif; 
Aurigma.GraphicsMill.Bitmap srcBitmap = new Aurigma.GraphicsMill.Bitmap(strSourceFileName);
srcBitmap.Save(strDest, encoderOptions);

Edited by user Wednesday, December 19, 2007 2:52:38 PM(UTC)  | Reason: Not specified

Dmitry  
#6 Posted : Wednesday, September 6, 2006 12:14:14 PM(UTC)
Dmitry

Rank: Advanced Member

Groups: Guest
Joined: 8/3/2003(UTC)
Posts: 1,070

Thanks: 1 times
Was thanked: 12 time(s) in 12 post(s)
Hello.

Adobe Photoshop image info fields are saved into several places of JPEG file. They are: EXIF, IPTC, Adobe Resources and XMP. Current compilation of Graphics Mill for .NET supports EXIF and IPTC only. Unfotunately Photoshop stores value of URL field into xapRights:WebStatement tag of XMP which is not supported at this moment.
Sincerely yours,
Dmitry Sevostyanov

UserPostedImage Follow Aurigma on Twitter!
Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.