> Essays > coding > EditPhotoMetaData
> Essays > coding > EditPhotoMetaData
by ZweiBieren Changing Photo Metadata pens in a mug

(This note is a cleaned up version of Adobe Forum post https://forums.adobe.com/thread/291056. No one has responded.)

My problem seemed simple: I have computed a property of an image and I want to insert that property into the image's metadata. Looking at the existing metadata I see an xpacket with all sorts of neatly recorded data. To this I want to add something simple like:

     colorSwatch: 0xFF00BB

Question 1: Will the metadata be harmed by inserting some text as long as I delete an equal number of the pre-existing blanks? Is there a checksum? Do I really have to use the XMP SDK and program in C?

So I started reading. Alphabet soup: XMP DC RDF RDFS . . . No one seems to appreciate the value of a little working example. Eventually I pieced together the approach below.

Question 2: Has the following scheme a prayer of doing anything useful? Step one - Define the pixa:color tag. This is in physpics.com/namespace/pixa.rdf:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
<rdfs:Class rdf:ID="Color">
<rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Resource"/>
<rdfs:simpleType name='colordata'>
<rdfs:restriction base='hexBinary'>
<rdfs:length value='6' />
<rdf:Property rdf:ID="color">
<rdfs:comment>Color swatch value for a picture</rdfs:comment>
<rdfs:domain rdf:resource=""/>
<rdfs:comment> ? </rdfs:comment>
<rdfs:range rdf:datatype="colordata" />
</rdf:Property> </rdf:RDF>

Question 3: What is the domain? It should somehow be a reference to an xpacket, I guess.

Step two - Add the pixa namespace to the rdf:Description. The head of the xpacket would look like.

<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>  
    <x:xmpmeta xmlns:x="adobe:ns:meta/"   x:xmptk="3.1.2-114">
        <rdf:RDF   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          <rdf:Description rdf:about=""/>

Step three - code the insertion for the xpacket. I believe (anyway, hope) that the packet looks like this:


Phew. That's it. Will it work????

Thanks for taking the time to work through this.
Fred Hansen

Copyright © 2023 ZweiBieren, All rights reserved. Mar 4, 2023 20:03 GMT Page maintained by ZweiBieren