I've been researching ways to write tags to my images similar to how
Windows Live Photo Gallery works. I've played with several different
libraries (metadata-extractor,jhead,jheader,sanselan) but have only really
found Sanselan to accomodate writing the data back in that I need.

I followed Apache's
WriteExifMetadataExample<http://commons.apache.org/proper/commons-imaging//xref-test/org/apache/sanselan/sampleUsage/WriteExifMetadataExample.html>
to
a T & It worked flawlessly for updating the GPS data and Aperture.

I then attempted to modify the example to update EXIF_TAG_XPKEYWORDS rather
thanEXIF_TAG_APERTURE_VALUE.

In the above-linked example, I replaced the TiffOutputField.create line
with the following:

String currentTagsAsString = new String((byte[])
jpegMetadata.findEXIFValue(ExifTagConstants.EXIF_TAG_XPKEYWORDS).getValue());System.out.println("current
tags: '" + currentTagsAsString + "'");String newTag = "h e l l
o";String newTagsAsString = currentTagsAsString.trim() + " ; " +
newTag + "   ";System.out.println("new desired tags: '" +
newTagsAsString + "'");TiffOutputField keywords = new
TiffOutputField(ExifTagConstants.EXIF_TAG_XPKEYWORDS,
FieldType.FIELD_TYPE_BYTE, newTagsAsString.length(),
newTagsAsString.getBytes());
exifDirectory.removeField(ExifTagConstants.EXIF_TAG_XPKEYWORDS);
exifDirectory.add(keywords);

Other than commenting out the aperature and GPS update code, the rest I
left alone. I will admit the format of the byte array has me a little
confused so that may very well be the issue.

I get no warnings/errors/etc. The process completes normally but the new
Image file does not contain the updated tags. Why does the new image not
contain the updated tags? Is there an easier/better way?

I have found that my string formatting was a little off in my example
above. The actual encoding of the original byte array does not include
space characters, but instead the '0' byte. I have adjusted the code
accordingly still with no luck.

Also, this E-mail is a direct copy of an existing stack overflow
question<http://stackoverflow.com/questions/15593707/writing-exif-xpkeywords-with-sanselan>which
I posed and has yet to yield any help. Feel free to answer the
stackoverflow question instead.
Randy Aldrich
http://randyaldrich.net

Reply via email to