We have recently started using XMP panels. One of the things I am worried about is people being able to view the XMP in an asset if they do not have Creative Suite. Is there some kind of XMP viewer that can be used?
XMP Viewer without CS
setlocale bug in XMPUtils::ConvertToFloat
Hello,
I'd like to report a bug that has been there for years and is still there in version 5.1.2.
XMPUtils::ConvertToFloat ( XMP_StringPtr strValue )
{
XMP_VarString oldLocale; // Try to make sure number conversion uses '.' as the decimal point.
XMP_StringPtr oldLocalePtr = setlocale ( LC_ALL, 0 );
if ( oldLocalePtr != 0 ) {
oldLocale.assign ( oldLocalePtr );
setlocale ( LC_ALL, "C" );
}
.....
if ( oldLocalePtr != 0 ) setlocale ( LC_ALL, oldLocalePtr ); // ! Reset locale before possible throw!
The text in red color is wrong. We have seen (but I no longer remember whether on Mac OS X or Win32) inside a certain application (we use the XMP lib in a plugin in that app) that oldLocalePtr is no longer valid pointer after setlocale(LC_ALL, "C") was called.
Instead, oldLocale.c_str() should be used there. I believe it is actually some leftover of some unfinished effort, becase oldLocale is otherwise only inited, but not used.
Kind regards,
Jan Patera
Not getting XMP data from INDD file
Hi,
I have an indd file which has some XMP data in it. I am trying to make an AIR application for which I need to seperate out all the elements like text,thumbnails, etc. from the INDD file.
For this I load the INDD file through FileRefrence , and give the byteArray to XMPMeta's constructor.
var meta:XMPMeta = new XMPMeta(byteArr);
// Here byteArr is assigned the bytearray from the filerefrence
Now, whenever I do a
var str:String = meta.serialize();
trace(str);
The o/p i get is:
str = "<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0.0-ac003">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""/>
</rdf:RDF>
</x:xmpmeta>
whereas the original document has a lot of other stuff in it, which I am not able to get.
But when I make the same file as an XML, i get all other stuff.
So can please anyone suggest me any solution for the same.
Thanks,
Eshaan
How can I add XMP data from an Android device
I'd like to be able to add XMP metadata to images on an Android device, but it seems that the writing SDK is C only. Anyone have any luck getting this working with the NDK? (I don't know C)
IPTC Description Field via Generic Panel
I want to access some IPTC Core Fields (Description , Title) via the properties.xml from the Generic Panel .
I tried dc:description but that doesnt work - any help out there ?
Best regards
How to save xmp changes without re-opening psd document?
Hi All!
I wanted to know whether we can see the changes made to the metadata of a psd file without re-opening it. I am developing a plugin for Photoshop CS5 on Windows and have included the necessary files of XMP Toolkit SDK for the XMP insertion part.
The scenario is that, I insert some info in the metadata of the file on button click (handled by my plugin). The problem is that, if I want to view the inserted info in FileInfo, I have to reopen the psd file to see the changes. I just cannot make the changes and view them in one go. Why is that?
I have referred to the ModifyingXMP sample of the SDK for doing this.
What can I do?
Drop down/Combo Box in Custom Metadata Panel
I am using Bridge 5.1. I have created a custom Info Panel using the Generic Panel in the XMP File Info SDK. I have it placed in the Custom Info Panels > 3.0 > Custom folder so that the fields display in the Bridge Metadata Panel. But, I cannot seem to get any of my drop downs to work for my metadata fields. I am able to see my custom fields and enter text, but I can't use any of my drop downs. Things work fine in the File Info Panel, but it would be nice to be able to enter metadata from the Metadata Panel.
Using Multiple Generic Info Panels
Hi:
I had an info panel that was working fine in CS6 for production metadata on Photoshop images.
I then wanted to do a second panel with licensing metadata (separating it from the production stuff).
I duped the production panel, changed the name of the panel in both the manifest and properties xml files and then added in my new fields.
What happens when I go to the Get Info selection in Photoshop is that both panels have the same tag name as well as the same name below. The fields are correct, but I can't seem to get those names to change.
I've changed the date in the manifest.xml (which is suppose to reload it). I've killed the 4.0 FileInfoPrefs.xml as described in the troubleshooting section of the FileInfo SDK.
Kind of running out of ideas. Has anyone used multiple info panels off the Generic Panel successfully and does anyone have any other suggestions that I might try?
Thanks.
--jon
CS 6 Generic File Info - not keeping checkboxes
I have a Generic Panel, that has been working fine since CS3, but in CS6 the checkbox values are not retained when a file is reopened. Well that's not strictly true and the value "True" seems to be stored, but it no longer checks the box.
The code I am using is:
<xmp_schema prefix="DK" namespace="http://DK.com/namespace/xmp/" label="$$$/DK/panel/blank=" >
<xmp_property name="ModelRelease" category="external" label="$$$/DK/values/modelRelease=Model Release:" type="boolean" description="$$$/DK/panel/modelReleaseDesc=Please check this option if you have a completed Model Release contract for each model within the image." />
<xmp_property name="LocationRelease" category="external" label="$$$/DK/values/locationRelease=Location Release:" type="boolean" description="$$$/DK/panel/locationReleaseDesc=Please check this option if a Location Release was required and completed for this image." />
</xmp_schema>
Which in the Raw Panel produces the following:
But the check box in the panel is unchecked, when the file is reopened.
Any help would be much appreciated!
James
Wanted: Bridge or Photoshop script for taking a camera raw "snapshot"
Hello,
i am looking for a way to create a "snapshot" in the xmp data of raw image files, like you do in camera raw's last tab "snapshots".
I can do copy&paste programming.
Here is a script that changes a certain value on a selection of image files. I can take this as a starting point to work in the xmp data in a selection of files. But what would a function to create a snapshot be?
#target bridgeif( BridgeTalk.appName == "bridge" ) {
setExposure = MenuElement.create("command", "Set Average Exposures", "at the end of Tools","exp");
}
setExposure.onSelect = function () {
var d=app.document;
d.deselectAll();
var sels = d.getSelection("cr2,crw,nef,mos,orf");
var noOfFiles =sels.length;
var diff = (3.25 / (noOfFiles-1));
var exp = 1.25;
var exp2=exp;
for(var a = 0;a<noOfFiles;a++){
exp2 = exp - (diff*(a)).toFixed(3);
var file = new File(sels[a].spec.toString().replace(/\....$/,'.xmp'));
setExposure( file, exp2 )
}
app.document.chooseMenuItem('PurgeCache');
function setExposure( file, expose ){
file.open('r');
file.encoding = "UTF8";
file.lineFeed = "unix";
file.open("r", "TEXT", "????");
var xmpStr = file.read();
file.close();
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
var xmp = new XMPMeta( xmpStr );
xmp.setProperty( XMPConst.NS_CAMERA_RAW, "Exposure", Number(expose) );
file.open('w');
file.encoding = "UTF8";
file.lineFeed = "unix";
file.write( xmp.serialize() );
file.close();
};
};
regards,
Stephan Möbius
Custom Info Panels files on remote location
Problems modifiing field data
First i use xmpMeta.DumpObject ( DumpCallback, sLogFile );
to dump the existing data to a terminal window.
At first run this works fine and i get the existing value set in the Category field of the "Categories" Panel.
Next i use xmpMeta.SetProperty ( kXMP_NS_Photoshop, "Category", "2" );
to change the value of a field and then call xmpFile.PutXMP ( xmpMeta ); to save the file.
When i open the file again in my test application the data is empty when doing the dump to the terminal window.
If I open it in acrobat, however, the data is there. I am some how corrrupting the data when wrtiting it. Can anyone help quide me as to what I may be doing wrong?
here is a sample of my code:
static void EditProperties ( const char * fileName )
{
bool ok;
SXMPMeta xmpMeta;
SXMPFiles xmpFile;
XMP_FileFormat format;
XMP_OptionBits openFlags, handlerFlags;
XMP_PacketInfo xmpPacket;
xmpFile.OpenFile ( fileName, kXMP_UnknownFile, kXMPFiles_OpenForUpdate );
ok = xmpFile.GetFileInfo ( 0, &openFlags, &format, &handlerFlags );
if ( ! ok ) return;
ok = xmpFile.GetXMP ( &xmpMeta, 0, &xmpPacket );
if ( ! ok ) return;
// Remove extaneous properties to make the dump smaller.
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/camera-raw-settings/1.0/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/tiff/1.0/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/exif/1.0/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/exif/1.0/aux/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/pdf/1.3/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/xap/1.0/t/pg/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, kXMP_NS_XMP, "Thumbnails", true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://purl.org/dc/elements/1.1/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/xap/1.0/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/xap/1.0/mm/", 0, true );
SXMPUtils::RemoveProperties ( &xmpMeta, "http://ns.adobe.com/pdfx/1.3/", 0, true );
//dump the data
fprintf ( sLogFile, "\n:::::::::: Initial XMP from %s ::::::::::\n\n", fileName );
xmpMeta.DumpObject ( DumpCallback, sLogFile );
//change the properties
xmpMeta.SetProperty ( kXMP_NS_Photoshop, "Category", "2" );
//dump it again
fprintf ( sLogFile, "\n\n:::::::::: Modified XMP from %s ::::::::::\n\n", fileName );
xmpMeta.DumpObject ( DumpCallback, sLogFile );
xmpFile.PutXMP ( xmpMeta );
xmpFile.CloseFile();
}
Metadata identifying a person in a photo
I went on a slide-scanning rampage a couple years ago and now have 15,000 images taken from slides, along with hundreds of really old family photos, and hundreds more of my own digital camera photos. I would like to identify who is in each photo, but I'm still waiting for the right metadata definition to come along so that doing so would not be a waste of time.
JPEG, TIFF and other image file formats typically allow metadata to be stored inside the file. This allows information about the image such as the date it was taken, keywords, a caption, a title, where it was taken, etc., to be stored inside the image file itself, so when you send someone a copy of the file, they're getting information about the the image at the same time.
Unfortunately, although you can add keywords and captions, there is not yet a well-established standard for identifying people in photographs. I have tried putting everyone's name in a caption, using a comma-separated list of names from left to right, and a semicolon between rows, back to front. But there is often some ambiguity with this ("was the baby on the lady's lap part of row 1 or 2?"), and it is just my own convention. Also, often there are only one or two people I know in a group shot, so I have to resort to "3rd from the left, second row" type descriptions, which is annoying. It really gets old after doing too many pictures with similar people in them, too, and uses up the space in the caption you'd rather use for a description sometimes.
Flickr allows you to draw a rectangle in an image and add a note that is associated with that rectangle. That's a great idea, and apparently they got it from "fotonotes", which does the same thing.
Fotonotes stores a chunk of XML text in "the 8th JPEG header", which is a good start, but I don't know whether such metadata can also be stored in TIFF files or not, and it doesn't seem likely that such headers would survive through utilities.
IPTC is the most common metadata format used in JPEG and TIFF files, but Adobe has been pushing its extensible "XMP" format for storing metadata in image files. Adobe's various programs (like Photoshop) recognize XMP metadata and preserve it whenever you manipulate or convert the files, so it may well be the best place to store the kind of metadata I'm talking about. Microsoft Vista's image browser apparently supports XMP as well. Since XMP is "extensible" (and is an open format), it should be possible to define tags in XMP that would support a rectangle with a note on it.
Does anyone know how to do that? If we could get that figured out, then the next step would be to get several big players (e.g., Adobe, Google, Flickr, Vista, iPhoto, etc.) to support those tags so that tagging your photos that way really does preserve the information for posterity instead of just being a proprietary tag that no software recognizes.
Resolution Changes
It is quite common to change the resolution of a photo for various uses, and one would not want the rectangles to break when that happens. The way Flickr handles it is that they treat the longest dimension as though it was 500 pixels, and then specify their coordinates accordingly. So if you draw a rectangle from 100,200 to 500,800 in an image that is 1500x3000, then they would take the longest dimension (3000) treat it as though it was 500, and scale the coordinates accordingly, in this case, multiply each coordinate by 500/3000=1/6. That way, if you reduce (or enlarge) the image, the coordinates can stay the same. If you crop, you're still hosed, although you would likely be able to manually "repair" the rectangles without knowing who's who in the picture by looking at how they are rela
XMPTextInput control height ignored in Flex 3 Properties
I need to set my XMPTextInput controls so that they have a height of 32. I have tried this in many different ways and none of them work. In Flex 3 in "Design" mode I select the control, open the properties tab and set the height to 32. The control changes to the correct height. When I run the panel the control height of 32 is ignored and a small height is used.
I even tried starting from scratch with a form that contains only one XMPTextInput field and I am still unable to increase the height.
Any ideas??
Fred
CS4 Generic Panel, how can I change the tab name in file info?
I built a custom panel from the Generic Panel provided by Adobe, everything works,
but the tab name stays " Generic Panel" even after changing the manifest.xml file. I deleted the manifest and property xml's and left only the bin folder, the tab stays the same, tells me it is within the swf? How can I change it?
Thanks
Mike
Embedding XMP into JPEG Using JAVA
Hi ,
I am new to this area andIwant to embedd the XMP data into my JPEG file using java .I have gone through the example in adobe XMPSDK kit with tat i m abke to create my XMP object but unable to understand how to embedd it to my jpeg again .Please help!
Lang Alt array - multiple values of the same locale
I am working with Iptc4xmpExt, but this question might apply to any Lang Alt array.
For the property Iptc4xmpExt:AOTitle, I need to write multiple values to accommodate alternate versions of an artwork title. Writing titles of different locales is no problem, but I can't find a way to write separate array values for the same locale.
Example 1:
<rdf:li xml:lang="x-default">Prize Vessel from the Athenian Games</rdf:li>
<rdf:li xml:lang="x-default">Panathenaic Prize Amphora and Lid</rdf:li>
Example 2:
<rdf:li xml:lang="x-default">Pantheon</rdf:li>
<rdf:li xml:lang="en-us">Pantheon</rdf:li>
<rdf:li xml:lang=""it-it">Santa Maria ad Martyres</rdf:li>
<rdf:li xml:lang=""it-it">Santa Maria Rotunda</rdf:li>
I think the separateArrayItems should work for this, but it doesn't.
event.xmpAccess.separateArrayItems("Iptc4xmpExt:ArtworkOrObject[1]/Ipt c4xmpExt:AOTitle", _workTitle.text, IXMPConst.ARRAY_ALT_TEXT);
-
-
-
<fi:XMPTextInputMRU id="_workTitle" xmpPath="Iptc4xmpExt:ArtworkOrObject[1]/Iptc4xmpExt:AOTitle" xmpType="Localized"/>
Also, I would like to preserve commas and I have had trouble using the "allowCommas:Boolean = true" parameter in the separateArrayItems method.
As a note, I tried using a semicolon and comma to separate other Lang Alt properties such as the CS4 Description panel "Document Title" and the values were written as a single string not as an array.
<dc:title>
<rdf:Alt>
<rdf:li xml:lang="x-default">ENGLISH TITLE 1; ENGLISH TITLE 2; ENGLISH TITLE 3</rdf:li>
</rdf:Alt>
</dc:title>
Thanks for any help you can give.
Greg Reser
Custom Metadata Panels from CS3 to CS4.
The CS3 files are txt files that all I had to do was copy to the proper directory and they appeared. Thanks.
Fred
C# XMP Toolkit : Manage Custom Tags
I have use the C# XMP Toolkit to add custom tags in a PDF file.
My custom tags are being saved into my PDF document BUT the namespace is not correct.
I have a pdfx_1_:MYPARAM in place of pdfx:MY_PARAM.
I have look on the XMPMeta.cpp file (line:901) and the namespace is renamed because the URI is already registered.
I'm must use XMPCore.RegisterNamespace sentence otherwhise core.SetProperty failed.
If anyone has one explaination and a solution, it will be fantastic !
I have used this code:
...
XmpCore.RegisterNamespace("http://ns.abode.com/pdfx/1.3/", "pdfx", "pdfx")
XmpCore.GetNamespacePrefix("http://ns.abode.com/pdfx/1.3/", test)
core.SetProperty("http://ns.abode.com/pdfx/1.3/", "MYPARAM", tag_PARAM, PropertyFlags.None)
...
Tank's in advance.
Edit XMP-tags for MP3
Hello
Not sure if this is the right forum but I give it a try... I have used XMP for keyword-tagging a big collection of recordings (MP3) in Adobe Bridge. Unfortunatley the CreateDate-tag is wrong and I would like to modify the tags. For image or video there are several softwares availible to edit XMP-tags (like Exiftool and MetadataTouch) but for MP3 I haven't found anything. Is there any external software (Windows) availible for editing XMP-datetags in audio files?
Best reagrds
Fredrik