Quantcast
Channel: Adobe Community : Popular Discussions - XMP SDK
Viewing all 49231 articles
Browse latest View live

Adobe XMP FileInfo Panels update available

$
0
0

We have posted an Adobe CS5 update to fix a compatibility issues between CS4 and CS5 custom XMP FileInfo panels. After applying it you'll be able to drop in custom FileInfo panels from CS4 directly into CS5. The update will be offered through the Adobe Updater application.

 

The XMP Team


Need help implimenting PLUS ldf in c++ via XMP sdk

$
0
0

I'm apparently suffering major brainstem bitrot and generating lots of brain coredumps, and I need help.

 

I'm using the XMP toolkit sdk 5.1.2 in c++ under gcc on Debian to impliment embedding PLUS ldf licensing metadata (reference: http://ns.useplus.org/LDF/ldf-XMPReference ) into images.

 

I have no problems generating compliant plus ldf xmp in code for everything EXCEPT for single line detail entries like "<rdf:type rdf:resource="plus:LicenseeDetail"/>" in several places in the ldf specification, viz:

 

<plus:Licensee>

   <rdf:Seq>

     <rdf:li>

          <rdf:type rdf:resource="plus:LicenseeDetail"/>

          <plus:LicenseeID>http://plus-id.org/AAA-987</plus:LicenseeID>

          <plus:LicenseeName>ABC Advertising Agency</plus:LicenseeName>

     </rdf:li>

   </rdf:Seq>

</plus:Licensee>

 

I can generate the appropriate text in memory then parse that to get an appropriate SXMPMeta and merge that, but I would really like to be able to properly generate the proper xmp in code, and would really appreciate any help preventing further brainrot!

 

I'm certain it's both simple and trivial, but I now can't see the trees because of the forest ... Thanks

XMP data not showing up in the custom file info panels when upgraded to CC

$
0
0

For several versions of Photoshop, I have been able to use a modified custom file info panel to input, update, and track psd files. With each version of photoshop there are always some changes in the way the object data is handled. The lastest challenge is:

 

1. XMP data not showing up in the custom file info panels when upgraded CC from CS6.

2. Raw data is not visible in CC in the File info panel.

3. This occurs in new documents where we create the xmp wrapper while the file template is built.

4. When metadata is manually entered into the file, the data is not added to the XMP wrapper when it is recreated on the save.

5. When a file that was created in CS6 is opened that contains the Metadata in the file info template. It is visible. the Raw data is also visible. Once the XMP wrapper is recreated - write and then close. The data is no longer available. the Raw data will not pull up in the file info panel.

 

Any feedback or a direction will be appreciated.

Crash in a poorly written ASF support function

$
0
0

I wrote a tool that analyses various AV material.

There is a corrupted asf file in my test set that causes a crash in ASF_LegacyManager::ComputeDigest (ASF_Support.cpp).

The function calls digestStr[digestStr.size()-1] without checking if digestStr is empty.

 

The buggy code is here:

 

 

 

 

void ASF_LegacyManager::ComputeDigest()

{

MD5_CTX context;

MD5_Digest digest;

 

 

char buffer[40];

MD5Init ( &context );

digestStr.clear();

digestStr.reserve ( 160 );

 

 

for ( int type=0; type < fieldLast; ++type ) {

 

 

if (fields[type].size ( ) > 0 ) {

snprintf ( buffer,

 

sizeof(buffer), "%d,", type );

digestStr.append ( buffer );

MD5Update ( &context, (XMP_Uns8*)fields[type].data(), fields[type].size() );

}

}

digestStr[digestStr.size()-1] =

 

';';

MD5Final ( digest, &context );

size_t in, out;

 

 

for ( in = 0, out = 0; in < 16; in += 1, out += 2 ) {

XMP_Uns8 byte = digest[in];

buffer[out] = ReconcileUtils::kHexDigits [ byte >> 4 ];

buffer[out+1] = ReconcileUtils::kHexDigits [ byte & 0xF ];

}

buffer[32] = 0;

digestStr.append ( buffer );

digestComputed =

 

true;

}

Custom XMP templates

$
0
0

Is there an "easy" way to create a custom XMP template? Trying to find any helpful information on the internet has been difficult, to say the least.

Retrieve array of structures

$
0
0

Hi,

 

I'm using the XMP Core in Java (the one provided with XMP SDK), it's working OK for simple items. But I'm having problems with structures.

 

I have the following XMP metadata:

 

 

<rdf:Description rdf:about=""            xmlns:xmp="http://ns.adobe.com/xap/1.0/"            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">         <xmp:CreateDate>2012-02-28T14:38:09Z</xmp:CreateDate>         <xmp:MetadataDate>2012-02-28T15:51:17Z</xmp:MetadataDate>         <xmp:ModifyDate>2012-02-28T15:51:17Z</xmp:ModifyDate>         <xmp:CreatorTool>Adobe InDesign 7.0</xmp:CreatorTool>         <xmp:PageInfo>            <rdf:Seq>               <rdf:li rdf:parseType="Resource">                  <xmpTPg:PageNumber>1</xmpTPg:PageNumber>                  <xmpGImg:format>JPEG</xmpGImg:format>                  <xmpGImg:width>256</xmpGImg:width>                  <xmpGImg:height>256</xmpGImg:height>                  <xmpGImg:image>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&#xA;Kf/Z</xmpGImg:image>               </rdf:li>               <rdf:li rdf:parseType="Resource">                  <xmpTPg:PageNumber>2</xmpTPg:PageNumber>                  <xmpGImg:format>JPEG</xmpGImg:format>                  <xmpGImg:width>256</xmpGImg:width>                  <xmpGImg:height>256</xmpGImg:height>                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4AE0Fkb2JlAGSAAAAAAQUAAgAD/9sAhAAMCAgICAgMCAgMEAsLCxAUDg0NDhQY&#xA;EhMTExIYFBIUFBQUEhQUGx4eHhsUJCcnJyckMjU1NTI7Ozs7Ozs7Ozs7AQ0LCxAOECIYGCIyKCEo&#xA;MjsyMjIyOzs7Ozs7Ozs7Ozs7Ozs7OztAQEBAQDtAQEBAQEBAQEBAQEBAQEBAQEBAQED/wAARCAEA&#xA;ALUDAREAAhEBAxEB/8QBQgAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAA&#xA;AAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGx&#xA;QiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSV&#xA;xNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgI7AQACEQMh&#xA;MRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0&#xA;ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH1+f3/9oADAMB&#xA;AAIRAxEAPwD0Xp/T8A4GMTjUkmmuT6bf3R5JKbH7P6f/ANxqf+22/wBySlfs/p//AHGp/wC22/3J&#xA;KV+z+n/9xqf+22/3JKV+z+n/APcan/ttv9ySlfs/p/8A3Gp/7bb/AHJKV+z+n/8Acan/ALbb/ckp&#xA;X7P6f/3Gp/7bb/ckpX7P6f8A9xqf+22/3JKV+z+n/wDcan/ttv8AckpX7P6f/wBxqf8Attv9ySlf&#xA;s/p//can/ttv9ySlfs/p/wD3Gp/7bb/ckpX7P6f/ANxqf+22/wBySlfs/p//AHGp/wC22/3JKV+z&#xA;+n/9xqf+22/3JKV+z+n/APcan/ttv9ySlfs/p/8A3Gp/7bb/AHJKV+z+n/8Acan/ALbb/ckpX7P6&#xA;f/3Gp/7bb/ckpX7P6f8A9xqf+22/3JKV+z+n/wDcan/ttv8Ackprv6fgfb6R9mpj0bdPTb+9T5JK&#xA;bHT/APk/G/4mv/qQkpsJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSmu&#xA;/wD5Qp/4m7/qqElK6f8A8n43/E1/9SElNhJSklPPW/Xr6v1Wupc+0uY7a8tqc5rT/KcNG/NT/dcn&#xA;ZqnnsI6sqPrv0LJr9Wl1rmEubPpkasJY7QweQnR5LNIWAsyfE+XxmjJkPrn0QvNYfYXNALm7dQDM&#xA;SJ7wj9xzXVfij/SvLVd/gV/+ePRjMGzTn2f7UvuGfsj/AEtyv734FR+uPRmgkm3TXRkn8Cl9wz9l&#xA;D4typ/S/AsKfrt0PIqZfS611djQ5rtkSDxyUI8lmkLAXT+J8tCRiTqPAs/8Anh0fxt/zP9qP3DP2&#xA;W/6W5X978C1x/jA+rrrDS115e2z0SBQ/6cbo44gzPCj+7ZLqvBmPPYRG70q2x/zw6P42/wCZ/tUn&#xA;3DP2Yf8AS3K/vfgVf88Oj+Nv+Z/tS+4Z+yv9Lcr+9+BV/wA8Oj+Nv+Z/tS+4Z+yv9Lcr+9+BV/zw&#xA;6P42/wCZ/tS+4Z+yv9Lcr+9+BbfTuu4HVLnUYpfva3edzY0BA/io8vLZMQuQZuX53DzBIgbp0VC2&#xA;VJKUkpSSlJKUkprv/wCUKf8Aibv+qoSUrp//ACfjf8TX/wBSElNhJSklPjza8rDty6hSbxbkWWse&#xA;HNAix0w/c4H2+QOi3OXEoQqrvV5Xm5Y8uW+Kq0+zs57MPqdNVzamWtNlWVAFrYFr7S+gt/SQ3QmY&#xA;+aYMeWINA7S69b06sks2CUhZGhj06V6uiZ+N1BvrNo9ba6mra51gcfUD3OsGtk8EDkeRTzDILq9h&#xA;1/tY45cJrirc9OladGFOF1Co2FzLItubZcGXauaaWshji9pBbYNeJH3IRx5Bfnrr4fxXzz4ZVqNB&#xA;Qsf1vLsxw6+ouvsrtstddjW0l7w/9GR6VTrWbC8A7iTHt7oYxkMiCTYI/IWnPLCIggCpA9NdzRtH&#xA;Rh9YxsauiplgYKqRa02Bx3N9QWCv9M3b+b+cAmwx5oxAHYf21quyZuWyTMiRdyrTyq9PPoXQxcbL&#xA;bmmzIfa6tlNQYS8bXWAPFhcxrudR2U+OExPW9g1cuXGcVRAuz06aVqhoozsfqOTlCovqvtjaXMkN&#xA;2VgWN93iz3DmI8E2EJxyGVaE/wAivyZMU8MY3qB49zp/D6oqsfqzgxmQ24N9cOftuAPpmotc3c20&#xA;H+c1/u4TIwyne9+/h592SWTlxZiR8vbrxeXZJTV1hz8P1y9rWV1+qWuaSLGn9Jv/AEgBDh5O+XKd&#xA;GOa43/L+X1WTnywE+Hua8uladPo66tNBSSnf+pX/ACpb/wCF3f8AV1rP+KfJHzdn4F/OS8ntVkvQ&#xA;KSUpJSklKSUpJTXf/wAoU/8AE3f9VQkpXT/+T8b/AImv/qQkpsJKUkp81t6b1L1HxhZJ9x4ps8f6&#xA;i3sfMYhAeobPJ5+TznJIiB3PRj+zep/9wsr/ALYs/wDIJ33nD+8GP7jzH7h+xX7N6n/3Cyv+2LP/&#xA;ACCX3nD+8FfceY/cP2K/ZvU/+4WV/wBsWf8AkEvvOH94K+48x+4fsYM6Pm1vfZX0+9r7DL3Nx3gu&#xA;I/eIZqgM+AGwQuPK81IAGMtGf7N6n/3Cyv8Atiz/AMgj95w/vBb9x5j9w/Yr9m9T/wC4WV/2xZ/5&#xA;BL7zh/eCvuPMfuH7Ffs3qf8A3Cyv+2LP/IJfecP7wV9x5j9w/Yr9m9T/AO4WV/2xZ/5BL7zh/eCv&#xA;uPMfuH7Ffs3qf/cLK/7Ys/8AIJfecP7wV9x5j9w/Yr9m9T/7hZX/AGxZ/wCQS+84f3gr7jzH7h+x&#xA;X7N6n/3Cyv8Atiz/AMgl95w/vBX3HmP3D9ju/U/EzMfqVr8jHupaaHAOtrewE7q9Jc0Kj8RywnEc&#xA;Jt1fg3L5cU5cUSNHr1mu2pJSklKSUpJSklNd/wDyhT/xN3/VUJKV0/8A5Pxv+Jr/AOpCSmwkpSSl&#xA;JKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKa7/wDlCn/ibv8AqqElK6f/AMn4&#xA;3/E1/wDUhJTYSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklNd/8AyhT/&#xA;AMTd/wBVQkpXT/8Ak/G/4mv/AKkJKbCSnz89S6sST+3K26/RJMjy+gssc3P/ADWQ/X+1k4R3C37S&#xA;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&#xA;Smu/qGB9vpP2mmPRt19Rv71Pmkp//9k=</xmpGImg:image>               </rdf:li>            </rdf:Seq>         </xmp:PageInfo>      </rdf:Description>

 

I can get the xmp:PageInfo item with no problems, but what I really want to retrieve is the PageNumber and the rest of the information related to the page.

 

The code I have in Java is the following:

 

 

if(property != null)                    {                              PropertyOptions propertyOptions = property.getOptions();                              if(propertyOptions != null)                              {                                        if(propertyOptions.isArray())                                        {                                                  int numArrayItems = xmpMeta.countArrayItems("http://ns.adobe.com/xap/1.0/", "PageInfo");                                                  List values = new ArrayList(numArrayItems);                                                  for(int i=1; i < numArrayItems + 1; i++)                                                  {                                                            XMPProperty arrayProp = xmpMeta.getArrayItem("http://ns.adobe.com/xap/1.0/", "PageInfo", i);                                                                Object propValue = arrayProp.getValue();                                                  }                                                    return (Serializable) values;                                        }                              }                    } 

which arrayProp is a composite property and structure.

 

Any clues on how to get the values for PageNumber, xmpGImg:format and the rest for each page?

 

Thanks,

Adei

getLocalPrefix Problem

$
0
0

I'm trying to use getLocalPrefix to retrieve the prefix for "http://ns.useplus.org/ldf/xmp/1.0/" which is stored as "plus" or "plus_1_".

 

I have not been able to get any results from:

var plusPrefix:String = xmpAccess.getLocalPrefix("http://ns.useplus.org/ldf/xmp/1.0/");

 

I have tried this:

[Bindable] private var plusNS:String = "";

 

private function initApp():void{

     var plusPrefix:String = xmpAccess.getLocalPrefix("http://ns.useplus.org/ldf/xmp/1.0/");

      plusNS = plusPrefix;

}

 

<fi:XMPNamespaces>

     <fi:XMPNamespace prefix="plus" value="{plusNS}" />

</fi:XMPNamespaces>

 

And  this:

[Bindable] private var plusNS:String = "";

 

private function xmpReadHandler(event:XMPEvent):void{

     var plusPrefix:String = xmpAccess.getLocalPrefix("http://ns.useplus.org/ldf/xmp/1.0/");

      plusNS = plusPrefix;

}

 

<fi:XMPNamespaces>

     <fi:XMPNamespace prefix="plus" value="{plusNS}" />

</fi:XMPNamespaces>

 

 

Thanks for any help you can give,

Greg Reser

Why CanPutXMP Fail

$
0
0

i wrote this code, when i try this code with jpg file, it works, but when i try it with gif file, the CanPutXMP return false,

can you help?

thank you very much

 

....
open file using SXMPFiles myFile
the file is opened.
then i tried to add a new name-value to the file,
....

 

 

SXMPMeta meta;
myFile.GetXMP(&meta);

 

string strUTF8TagName="myName";
string strUTF8TagValue="myValue";
meta.SetProperty(kXMP_NS_XMP_MM, strUTF8TagName.c_str(), strUTF8TagValue.c_str(), 0);
if(myFile.CanPutXMP(meta))

Copy a file name to its own metadata

$
0
0
I am re-organizing a large database of images. I do want to rename all the files but I need to keep the original file name for future reference. Is there a way to copy the original file name to the metadata without having to do it by hand (one by one)? I'm using Photoshop CS2, Bridge or Lightroom with a Mac running on OSX 10.4.8 and enough ram.

Building Public XMP SDK on Visual Studio 2012

$
0
0

Current Support

The XMP Toolkit SDK package currently supports only Visual Studio 2010 environment and has been tested to work properly on Windows 7 platform. With the current set-up provided in the package, the “GenerateXMPToolkitSDK_win.bat” present at “…/<XMP_SDK_Root>/build/” automatically creates Visual Studio 2010 .vcxproj and .sln files for XMP components. The solution files for XMP components are created using the CMake tool and the project generator for Windows platform is defined as “Visual Studio 2010” inside the “CMakeutils.bat” file. To build the XMP components on Visual Studio 2010, we just need to execute the "GenerateXMPToolkitSDK_win.bat” file and enter the appropriate option as input. This does not require any modification at the user’s end.

 

Building XMP SDK on Visual Studio 2012

XMP SDK projects are created using CMake tool for all platforms. XMP SDK has been tested to work with Win7 and Win8 when the projects are built using Visual Studio 2010. Since the current SDK package uses Visual Studio 2010 to create projects on Windows, if Visual Studio 2010 is not installed on the machine, CMake will throw an error.

However, the XMP SDK can be built and used with VS 2012 also.

Following are two approaches for using XMP SDK with Visual Studio 2012:

  1. Build the XMP SDK libs normally on a machine with VS2010. These libs can be used by applications created on VS2012.
  2. To build the XMP SDK on VS 2012 perform the following steps:
    1. Download the attachment "ChangedScripts.rar". Unzip the package.
    2. Replace the file “CMakeUtils.bat” present at “…<XMP_SDK_Root>/build/shared/” with the file from the attached package.
    3. Then to generate the projects compatible with Visual Studio 2012 execute the attached script “GenerateXMPToolkitSDK_vc11.bat”. Through these changes, CMake will now create VS2012 projects.

 

Building XMP SDK Samples on Visual Studio 2012

With the current package contents the XMP Sample projects are created using Visual Studio 2010. For creating XMP Samples' projects, the user just needs to execute the file "GenerateSamples_win.bat" present at "<XMP_SDK_Root>/samples/build/" in order to generate VS2010 compatible projects.

It is also possible to create VS 2012 projects for XMP Samples. The user needs to perform the following steps:

  1. Download the attachment "ChangedScripts.rar". Unzip the package.
  2. Copy the script "GenerateSamples_vc11.bat" from the unzipped package present at  ".../<ChangedScripts_Root>/scriptForSamples/" to ".../<XMP_SDK_Root>/samples/build/"
  3. Then to generate the Sample projects compatible with Visual Studio 2012 execute the script “GenerateSamples_vc11.bat”. Through these changes, CMake will now create VS2012 projects for XMP Samples



No XMP syntax definition? Looking for XMP DTD...

$
0
0

Hi,

 

I am trying to solve an incompatibility between two software products. One product writes images with an embedded XMP in an way that some other programs (including Photoshop) complain about beeing unable to read all information when opening these image files.

 

I've tracked the problem down to the xmpRights:UsageTerms attribute, but was unable to find a hint wether the file is incorrect (and a writer problem) or correct (and a reader problem).

 

interestingly, there are Documents describing the meaning of XMP entries, such as Iptc4xmpCore_1.0-spec-XMPSchema_8.pdf or IPTC-PhotoMetadata(200907)_1.pdf , which describe the meaning of 'field names', e.g. they describe a UsageTerms as something containing free text describing how the news object can be legally used. But I did not find any precise description about wether this should be an XML attribute or element, and where it is syntactically allowed.

 

It does not make sense to describe the meaning of a field name without declaring what sort of field it is and where it is allowed.

 

Where would I find a DTD or similar precise syntax description?

Xcode samples compilation missing libraries?

$
0
0

I have 10.6 and xcode with 10.5 and 10.6 libraries I have configured the project settings but cant find where these two libraries are on my system

 

OTHER_LDFLAGS =

 

 

${XMP_ROOT}/libraries/macintosh/${BUILD_MODE}/libXMPCore${LIB_SUFFIX}. a

 

and

 

${XMP_ROOT}/libraries/macintosh/${BUILD_MODE}/libXMPFiles${LIB_SUFFIX} .a -framework CoreServices

 

I dont even have a 'macintosh' directory, where do I get these files.

 

please help its the last hurdle and I have googled everything for it?

Is there a .NET XMP Reader Component Available ?

$
0
0

We have an application written in .NET 3.5. We want the application to read XMP metadata from media files.

Can anyone tell me whether there is a ready-made .NET DLL/Component available which provides methods for reading XMP metadata ?

 

I have spend the best part of a week trying to recompile the SDK into a .NET CLR DLL and have been totally unsuccessful. The most I have managed is a straight Windows DLL. The Adobe code is written in a way which makes it incompatible with the .NET CLR (huge numbers of linkage errors, duplicate definitions etc), not to mention the incredibly old C-style function prototyping which all needs re-writing in 'expat' and 'zlib' !

 

We really don't want to spend any more time on this and would prefer to buy a ready-made component.

 

Graham Plowman

How do you convert XMP data to XML file

$
0
0

Im currently trying to format existing XMP side car medadata files to an XML file format.

Im adding keywords and descriptions to the XMP side car files and im looking to properly format that into an XML file so i can use a video metadata inject feature when encoding raw video footage into wmv and flash files using rhozet's carbon coder software.

how to insert xmp metadata into jpeg files?

$
0
0

Hi

 

Is it possible to automatically insert the metadata

with the script using text extracted from my database.

I have to insert the metadata into lots of images which are uploaded to a site.

 

 

Thanks

[signature deleted bu host]


using CsXmpToolkit

$
0
0

Hi,

I'm attempting to use the c# wrapper for the Xmp SDK, CsXmpToolkit.

 

This may be more of a C# question than a specific Xmp SDK question, but this seems like the best forum, so here goes.

 

Right now, I'm just trying to get some simple tests running, but it seems like when I run my tests, the CsXmpToolkit classes can't find the necessary XmpToolkit libraries.

 

For example, in the CsXmpToolkit code, there's stuff like this:

 

        [DllImport("XmpToolkit", EntryPoint = "XMPFiles_Initialize1", CharSet = CharSet.Auto)]
        private static extern bool XMPFiles_Initialize1();

 

this is how the C# code binds/wraps around the XmlToolkit code.

 

however, when I run tests on this stuff, like so:

 

            XmpFiles.Initialize();

 

I get the error

System.DllNotFoundException: Unable to load DLL 'XmpToolkit': The specified module could not be found.


now, this is my first time dealing with this [DllImport business, so perhaps I'm missing something simple.
However, I'm noticing a few things:
1. I don't have any dlls for XmpToolkit. There's some .lib files, like
C:\CsXmpTk\SE.Halligang\XmpToolkit\lib\XMPCoreStaticRelease.lib
and
C:\CsXmpTk\SE.Halligang\XmpToolkit\lib\XMPFilesStaticRelease.lib

is that what CsXmpToolkit is trying to load when it calls
[DllImport("XmpToolkit",   ?

2. relatedly, the referenced "dll" in DllImport is "XmpToolkit" , not "XmpToolkit.dll", .lib, or .anything else.
what does that mean?

is there some build procedure I need to do on CsXmpToolkit to get this to work?
Has anyone been successful with this stuff?

any help would be greatly appreciated, and rewarded with a off-hours tour of the Met, if you're in the area..

thanks very much!

don undeen
Metropolitan Museum of Art


"Bad TIFF Data size" or "Invalid primary IFD offset" error

$
0
0

Hi,

I'm creating a php module from the XMP sdk. Compilation is ok with gcc 4.2 on a FreeBSD Os, but when I try to call the getXMP function for a jpeg file, I have the following error :

- "Bad TIFF Data size", when I use a jpeg file without metadatas,

 

- "Invalid primary IFD offset" when I use a jpeg file with valid xmp headers (and when I test some values, I found that the system give the error by the test mainIFDOffset > (length - kEmptyIFDLength) , but the values are 8 > (6016 - 6) ...which is a bit confusing...

 

- or sometimes "Undefined symbol "XML_ParserCreateNS" " when I use the BlueSquare.jpg file, found in the XMP Toolkit SDK zip...

 

Can anyone help me to found what's going wrong ?

Thanks a lot !

Dump XMP-Data with Java?

$
0
0

Hello,

i try to figure out how XMP stuff works with java, so im running through the XMPCoreCoverage sample code.

There are a lot of things i understand, but there is one thing i just cant find out.

 

All the code works with constants for the XMPCoreCoverage example. How can i use an image instead of the constants?

 

Or at least does anyone know how to dump the xmp data with java?

 

i would really appreciate that...

thx a lot!

Custom FileInfo panel not saving new metadata

$
0
0

I've written a script to copy text from a variable into an XMPTextInput or XMPTextArea field. Once compiled and opened as a FileInfo Panel in Illustrator, when I click the button, the text appears in the desired field. However, it is not saved when the window is closed. Does not work with or without the dispatchEvent code. I can't find any online reference to the proper way of calling the xmpWrite event, so I copied this dispatchEvent code from a sample panel.

 

What's going wrong?

Thanks,
Alex

 

<mx:Script>
    <![CDATA[
        import mx.controls.Text;
        public var textVariable:String = "testString" ;

 

        function copyText():void {kwArea.text = textVariable; dispatchEvent(XMPEvent(XMPEvent.XMP_WRITE));}
    ]]>
</mx:Script>
    <fi:XMPFormItem
            label="$$$/xmp/sdk/custompanels/FileName/Panel/Keywords=Keywords:"
            <fi:XMPTextInput xmpPath="dc:subject" xmpArray="bag" id="kwArea" />
            </fi:XMPFormItem>
</fi:XMPForm>

xmp specs for "description" field

$
0
0

To whom it may concern (or to whoever may be able and willing to help;-):

 

In INDD I am able to enter xmp data into the description field as long as i want (which is also not cropped after saving), however the data is cropped to a certain number of cyphers/letters whenever in eported pdfs (no matter what export preset). I googled quite a while to turn up xmp specs regarding this, but could not turn up any. If anyone could tell my, why the cropping occurs or could turn up a workaround for it, i`d be grateful.

 

Kind regards and thanks ahead,

Aurel

Viewing all 49231 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>