Hello.
I'm looking for a way to connect the  Adobe XMP Toolkit to Sanselan.
Especially with JPEG.

I'm really newbie, so I apology if my response doesn't make sense to you all...

Here's an output of Sanselan
TiffImageMetadata.toString()
                Root:
                        Make: 'Canon'
                        Model: 'Canon EOS 350D DIGITAL'
                        Orientation: 1
                        XResolution: 72
                        YResolution: 72
                        ResolutionUnit: 2
                        DateTime: 2007-10-06T16:47:56.000+0200
                        WhitePoint: 313/1000, 329/1000
                        PrimaryChromaticities: 64/100, 33/100, 21/100, 71/100, 
15/100, 6/100
                        YCbCrCoefficients: 299/1000, 587/1000, 114/1000
                        YCbCrPositioning: 2
                        Exif_IFD_Pointer: 320

                Exif:
                        ExposureTime: 1/60
                        FNumber: 5
                        ExposureProgram: 0
                        ISOSpeedRatings: 400
                        ExifVersion: 48, 50, 50, 49
                        DateTimeOriginal: 2007-10-06T16:47:56.000+0200
                        DateTimeDigitized: 2007-10-06T16:47:56.000+0200
                        ComponentsConfiguration: 1, 2, 3, 0
                        ShutterSpeedValue: 387114/65536
                        ApertureValue: 304340/65536
                        ExposureBiasValue: 0
                        MeteringMode: 1
                        Flash: 16
                        FocalLength: 41
MakerNote: 24, 0, 1, 0, 3, 0, 46, 0, 0, 0, 34, 4, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 126, 4, 0, 0, 3, 0, 3, 0, 4, 0, 0, 0, -122, 4, 0, 0, 4, 0, 3, 0, 34, 0, 0, 0, -114, 4, 0, 0, 6... (8340) UserComment: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0... (264)
                        FlashpixVersion: 48, 49, 48, 48
                        ColorSpace: 65535
                        PixelXDimension: 3456
                        PixelYDimension: 2304
                        Interoperability_IFD_Pointer: 9366
                        FocalPlaneXResolution: 3456000/874
                        FocalPlaneYResolution: 2304000/582
                        FocalPlaneResolutionUnit: 2
                        CustomRendered: 0
                        ExposureMode: 0
                        WhiteBalance: 0
                        SceneCaptureType: 0
                        Unknown: 22/10

                Interoperability:
                        GPSLatitudeRef: 'R03'
                        GPSLatitude: 48, 49, 48, 48

                Sub:
                        Compression: 6
                        XResolution: 72
                        YResolution: 72
                        ResolutionUnit: 2
                        JPEGInterchangeFormat: 9716
                        JPEGInterchangeFormatLength: 9176

The same file parsed with Adobe Bridge produces this XMP file :

<?xpacket begin="Ôªø" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c037 46.282696, Mon Apr 02 2007 18:36:56 ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";>
      <rdf:Description rdf:about=""
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/";>
         <tiff:Make>Canon</tiff:Make>
         <tiff:Model>Canon EOS 350D DIGITAL</tiff:Model>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:ImageWidth>3456</tiff:ImageWidth>
         <tiff:ImageLength>2304</tiff:ImageLength>
<tiff:PhotometricInterpretation>2</ tiff:PhotometricInterpretation>
         <tiff:SamplesPerPixel>3</tiff:SamplesPerPixel>
         <tiff:BitsPerSample>
            <rdf:Seq>
               <rdf:li>8</rdf:li>
               <rdf:li>8</rdf:li>
               <rdf:li>8</rdf:li>
            </rdf:Seq>
         </tiff:BitsPerSample>
         <tiff:XResolution>72/1</tiff:XResolution>
         <tiff:YResolution>72/1</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/";>
         <exif:ExifVersion>0221</exif:ExifVersion>
         <exif:ExposureTime>1/60</exif:ExposureTime>
<exif:ShutterSpeedValue>5906891/1000000</ exif:ShutterSpeedValue>
         <exif:FNumber>5/1</exif:FNumber>
         <exif:ApertureValue>4643856/1000000</exif:ApertureValue>
         <exif:ExposureProgram>0</exif:ExposureProgram>
         <exif:ISOSpeedRatings>
            <rdf:Seq>
               <rdf:li>400</rdf:li>
            </rdf:Seq>
         </exif:ISOSpeedRatings>
<exif:DateTimeOriginal>2007-10-06T16:47:56+02:00</ exif:DateTimeOriginal> <exif:DateTimeDigitized>2007-10-06T16:47:56+02:00</ exif:DateTimeDigitized>
         <exif:ExposureBiasValue>0/2</exif:ExposureBiasValue>
         <exif:MeteringMode>1</exif:MeteringMode>
         <exif:Flash rdf:parseType="Resource">
            <exif:Fired>False</exif:Fired>
            <exif:Return>0</exif:Return>
            <exif:Mode>2</exif:Mode>
            <exif:Function>False</exif:Function>
            <exif:RedEyeMode>False</exif:RedEyeMode>
         </exif:Flash>
         <exif:FocalLength>41/1</exif:FocalLength>
         <exif:CustomRendered>0</exif:CustomRendered>
         <exif:ExposureMode>0</exif:ExposureMode>
         <exif:WhiteBalance>0</exif:WhiteBalance>
         <exif:SceneCaptureType>0</exif:SceneCaptureType>
<exif:FocalPlaneXResolution>3456000/874</ exif:FocalPlaneXResolution> <exif:FocalPlaneYResolution>2304000/582</ exif:FocalPlaneYResolution> <exif:FocalPlaneResolutionUnit>2</ exif:FocalPlaneResolutionUnit>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:xap="http://ns.adobe.com/xap/1.0/";>
         <xap:ModifyDate>2007-10-06T16:47:56+02:00</xap:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/";>
         <dc:creator>
            <rdf:Seq>
               <rdf:li>antoine</rdf:li>
            </rdf:Seq>
         </dc:creator>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:aux="http://ns.adobe.com/exif/1.0/aux/";>
         <aux:SerialNumber>1330734959</aux:SerialNumber>
         <aux:LensInfo>18/1 55/1 0/0 0/0</aux:LensInfo>
         <aux:Lens>18.0-55.0 mm</aux:Lens>
         <aux:ImageNumber>160</aux:ImageNumber>
         <aux:FlashCompensation>0/1</aux:FlashCompensation>
         <aux:OwnerName>antoine</aux:OwnerName>
         <aux:Firmware>1.0.3</aux:Firmware>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/";>
         <crs:AlreadyApplied>True</crs:AlreadyApplied>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/";>
         <photoshop:ColorMode>3</photoshop:ColorMode>
<photoshop:ICCProfile>Canon EOS 350D DIGITAL</ photoshop:ICCProfile>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>


Root corresponds to the tiff namespace
Exif corresponds to the exif namespace

In Sanselan those variables are private :
TiffImageMetadata.directory

Would an accesor to directory be usefull to parse XMP with Adobe's Toolkit?


Regards,
Anoine Moreau de Bellaing


Le 19 nov. 07 à 10:26, Jeremias Maerki a écrit :

(I realize this is heavy cross-posting but it's probably the best way to
reach all the players I want to address.)

As you may know, I've started developing an XMP metadata package inside
XML Graphics Commons in order to support XMP metadata (and ultimately
PDF/A) in Apache FOP. Therefore, I have quite an interest in metadata.

What is XMP? XMP, for those who don't know about it, is based on a
subset of RDF to provide a flexible and extensible way of
storing/representing document metadata.

Yesterday, I was surprised to discover that Adobe has published an XMP
Toolkit with Java support under the BSD license. In contrast to my
effort, Adobe's toolkit is quite complete if maybe a bit more
complicated to use. That got me thinking:

Every project I'm sending this message to is using document metadata in
some form:
- Apache XML Graphics: embeds document metadata in the generated files
(just FOP at the moment, but Batik is a similar candidate)
- Tika (in incubation): has as one of its main purposes the extraction
of metadata
- Sanselan (in incubation): extracts and embeds metadata from/in bitmap
images
- PDFBox (incubation in discussion): extracts and embeds XMP metadata
from/in PDF files (see also JempBox)

Every one of these projects has its own means to represent metadata in
memory. Wouldn't it make sense to have a common approach? I've worked
with XMP for some time now and I can say it's ideal to work with. It
also defines guidelines to embed XMP metadata in various file formats.
It's also relatively easy to map metadata between different file formats
(Dublin Core, EXIF, PDF Info etc.).

Sanselan and Tika have both chosen a very simple approach but is it
versatile enough for the future? While the simple Map<String, String[]> in
Tika allows for multiple authors, for example, it doesn't support
language alternatives for things such as dc:title or dc:description.

I'm seriously thinking about abandoning most of my XMP package work in
XML Graphics Commons in favor of Adobe's XMP Toolkit. What it doesn't
support, tough:
- Metadata merging functionality (which I need for synchronizing the PDF
Info object and the XMP packet for PDF/A)
- Schema-specific adapters (for Dublin Core and many other XMP Schemas) for
easier programming (which both Ben and I have written for JempBox and
XML Graphics Commons). Adobe's toolkit only allows generic access.

Some links:
Adobe XMP website: http://www.adobe.com/products/xmp/
Adobe XMP Toolkit: http://www.adobe.com/devnet/xmp/
JempBox: http://sourceforge.net/projects/jempbox
Apache XML Graphics Commons:
 
http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/xmp/

My questions:
- Any interest in converging on a unified model/approach?
- If yes, where shall we develop this? As part of Tika (although it's
still in incubation)? As a seperate project (maybe as Apache Commons
subproject)? If more than XML Graphics uses this, XML Graphics is
probably not the right home.
- Is Adobe's XMP toolkit interesting for adoption (!=incubation)? Is
the JempBox or XML Graphics Commons approach more interesting?
- Where's the best place to discuss this? We can't keep posting to
several mailing lists.

At any rate, I would volunteer to spearhead this effort, especially
since I have immediate need to have complete XMP functionality. I've
almost finished mapping all XMP structures in XG Commons but I haven't
committed my latest changes (for structured properties) and I may still
not cover all details of XMP.

Thanks for reading this far,
Jeremias Maerki



Reply via email to