ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 XMP_WriteToStrings does not show XMP metadata
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

PeterPanino

984 Posts

Posted - Apr 12 2016 :  10:34:55  Show Profile  Reply
Hello! In MetadataTouch (http://www.digitalconfidence.com/MetadataTouch.html), a professional Metadata editor, I have saved some XMP metadata fields in a .JPG file:



However, when trying to show these XMP metadata with ImageEn XMP_WriteToStrings, nothing is returned:

IEV.IO.Params.XMP_WriteToStrings(sl);
CodeSite.Send('XMP Data', sl);


Why not?

I have attached the file with the XMP metadata:

attach/PeterPanino/2016412104048_audio.zip
16.74 KB

ImageEnVersion is: 6.2.1

Even Exif Pilot shows the XMP tags in the attached JPG file.

xequte

39053 Posts

Posted - Apr 12 2016 :  16:16:09  Show Profile  Reply
Hi Peter

I can reproduce the issue (due to the nature of the XMP implementation in this file).

We are investigating...

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

PeterPanino

984 Posts

Posted - Apr 12 2016 :  19:28:35  Show Profile  Reply
Here is a screenshot from Exif Pilot of a .PSD image with XMP metadata which should be recognized by ImageEn:



Here is the file (aboutus.PSD) containing these XMP metadata:

attach/PeterPanino/2016412192513_aboutus.zip
1321.57 KB
Go to Top of Page

xequte

39053 Posts

Posted - Apr 12 2016 :  23:33:54  Show Profile  Reply
Thanks, we'll let you know once we investigate.


Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

xequte

39053 Posts

Posted - Apr 26 2016 :  19:00:35  Show Profile  Reply
Hi

This will be addresses in the next update.

Regarding the PSD, if you execute:
imageenview1.io.loadfromfile('aboutus.psd');
  ShowMessage(imageenview1.io.params.XMP_Info);
  ShowMessage(ImageEnView1.IO.Params.Dict.GetDictionary('XMP').Dump(ieplJSON) );

You see that the file actually contains XMP data and is parsed, but no useful XML tags are present...

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

PeterPanino

984 Posts

Posted - May 03 2016 :  02:39:17  Show Profile  Reply
Is there already a new update available for Delphi 10.1 Berlin where this bug is fixed?
Go to Top of Page

xequte

39053 Posts

Posted - May 03 2016 :  15:20:16  Show Profile  Reply
Yes, email us.

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

xequte

39053 Posts

Posted - May 10 2016 :  00:38:15  Show Profile  Reply
Sorry, I see you are using the helper function, XMP_WriteToStrings(). Please note that it only outputs a known set of standard XMP tags.

If you want to output all tags, you need to parse the XML in IO.Params.XMP_Info.

Or via the dictionary, e.g.

memo1.Text := imgview1.IO.Params.Dict.GetDictionary( 'XMP' ).Dump( ieplJSON );


http://www.imageen.com/help/TIOParams.Dict.html

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

PeterPanino

984 Posts

Posted - May 11 2016 :  01:39:30  Show Profile  Reply
This function gives back False although it contains all the XMP properties depicted in the screenshot sent to you by email:

CodeSite.Send('Has any XMP Fields', IEV.IO.Params.XMP_WriteToStrings(sl));

In the ImageEn CHM manual, one of the common XMP fields is: XMP_DC_Title. (Which obviously translates to XMP Dublin Core Title). You can see from the screenshot sent to you by email that this XMP property IS defined in the JPG file sent to you by email. However it is not read when using XMP_WriteToStrings.

So we can see that the function XMP_WriteToStrings does not read the common XMP fields as described in the CHM manual.

Even the XMP_AsStr function does not output anything although these XMP properties are contained in the JPG file sent to you:

CodeSite.Send('XMP_DC_Description', IEV.IO.Params.XMP_AsStr[ XMP_DC_Description ]);
CodeSite.Send('XMP_DC_Title', IEV.IO.Params.XMP_AsStr[ XMP_DC_Title ]);

So could you please provide a sample JPG file which demonstrates that this works?

Even more strangely, IEV.IO.Params.XMP_HasXMPData gives back TRUE for this file!

I would really like to make this work.
Go to Top of Page

xequte

39053 Posts

Posted - May 12 2016 :  00:36:13  Show Profile  Reply
Naturally IEV.IO.Params.XMP_HasXMPData returns true, because if you examine IEV.IO.Params.XMP_Info you will see that it contains XMP data.

Also, it works correctly if you use the internal methods for retrieval:

ImageEnView1.IO.Params.Dict.GetDictionary( 'XMP' ).GetString( sProp2 ); 


You can see this in the XMP demo:

http://www.imageen.com/ieforum/topic.asp?TOPIC_ID=1446&whichpage=3


However there is a weird issue with XMP_WriteToStrings() - some weird widestring issue, which we are investigating.



Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: