David Harris's Technology Blog

ColdFusion, Flex, and other stuff...   (and 354,856 hours, 11 mins in to my plan for global domination)

Search:

Calendar:

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Subscribe:

Enter your email address to subscribe to this blog.

Archives By Subject:

Tags:

action script adobe air ajax cfug coldfusion flash flex frameworks free software fxug general jpgmetadatareader mac off topic opensource papervision spry

Recent Entries:

No recent entries.

Top Posts:

Recent Comments:

Top Commenters:

My Links:

RSS:


Introducing JpgMetadataReader.cfc

Here is the JpgMetadataReader.cfc, why you would use it and how would use it.

Every JPG has meta data connected to it. The format I was mainly interested in was IPTC (International Press Telecommunications Council) standard. (more about that here The one I was most interested in was the "Caption", the idea being you could set this value up, upload the file and it would be available to be use on the sever when displaying it in an album view (in my case Simple Viewer) What is great about this is that you can assign the comment TO THE JPG, and thus storing the data in a single location, rather than the JPG in one place, and the information about it in another!

Along with the IPTC meta data there is also the EXIF (Exchangeable Image File Format) meta data. The EXIT meta data has lots of good stuff about when/how/what settings the camera used when the photo was taken. (More about that here)

There are 2 programs I use to set this meta data up, both are free (of course!)

- IrfanView (with all the plugins installed) http://www.irfanview.net/ - PixVue, which gives a nifty right click menu to add/edit the meta data. http://www.pixvue.com/

This CFC uses the Java class metadata-extractor-2.3.1.jar, which you can download from: http://drewnoakes.com/code/exif/releases/ You will need to put this in the ColdFusion "lib" directory and restart the ColdFusion instance.

Right, now for some code...

<cfset oMetaData   = createObject("component","JpgMetadataReader").init()>

<cfset stMetaData   = oMetaData.getMetaDataStruct("\path\to\my\picture.jpg")>

<cfdump var="#stMetaData#">

This will return ALL meta data to do with the JPG (EXIF, IPTC and any other) If it is not defined, it does not return it, so you would have to check for it before you attempt to output it...

I have only tested it on WindowsXP running CF7 on JPG files (as that's all I use...), but feel free to have a look at it use it!

If you find it really useful consider donating to http://drewnoakes.com/code/exif/releases/, as he did all the really hard work!

...in the mean time, this'll work fine until CF8 comes out with all this native built in!

Comments
Do you have any idea if this will work with railo 1.0? I am having a hard time getting it to work on the different setup. Does anyone know if I need to do something besides adding the jar file to the lib directory?
# Posted By 900spg | 8/4/07 3:10 AM
No idea sorry re: Railo.
If you look at the v0.3 of the JpgMetadataReader there are instructions on using Mark Mandle's Java class loader, so you don't need to put the class in to the lib dir.

Hope that helps
# Posted By David | 8/6/07 3:28 PM
Hi David,
I did get this to work on Railo 2.0. Thanks so much for this as it finally allowed me to create an upload page that lets me write the exif data to the database with the other image info. It has been a tremendous help. Thanks.
# Posted By 900spg | 8/7/07 2:45 AM
Great!
Glad to know someone other than me finds it useful!
# Posted By David Harris | 8/9/07 3:23 PM