www.sentex.net/~mwandel/jhead -> www.sentex.net/~mwandel/jhead/
Exif files are for the most part Jpeg files, but start with a different header block, and contain additional data sections with camera settings, as well as a preview thumbnail picture as part of the Exif header. Many image btowsers today make use of this integral thumnbail when browsingg, while other browsers make their own thumbnails based on the image as a whole. Because I am interested in photography, I am always curious just exactly what settings my fully automatic digital camera actually did end up using. There's a few programs out there that can parse some of these headers, but I couldn't find one that I could compile to an executable, and none that actually figured out what the camera settings were from the various confusing ways in which the fields can be expressed. Parsing the data of interest out of an Exif header is not straightforward. There is a large number of ways that simple data such as shutter speed or aperture setting can be expressed in inside of an Exif header. It can be an integer of various forms, or a fraction or floating point, which must subsequently be raised to a power to get the true value. Then it can be stored big-endian or little endian, and there are different fields for expressing the same values! It sounds like complete evolutionary anarchy, but I think it's just a commitee designed spec. So I wrote this command line driven program to parse through the little file system in the Exif headers and extract the stuff I really care about: What the digital camera settings really were. The other thing I realized is that the files coming out of most digital cameras contain an integral thumbnail as part of the Exif header. This thumbnail is used for flipping through really tiny images on the LCD, although most cameras, when viewing just one image on the LCD don't use it (too little detail). This thumbnail takes up typically around 10k of data in the header. Once the picture is off the camera, image browsers don't depend on it. In the years since, images have become much larger, so the 10k has become less important. But various image browsers now make use of this thumbnail. However, the thumbnail can become incorrect if the image is manipulated but not the thumbnail. So I added the -rgt option to regenerate the thumbnails.
command line options for manipulating Exif files, such as options to manipulate the date in the header, renaming image files, or coordinating running Jpegtran and Mogrify to manipulate whole directory trees of images. Windows browsers have the annoying habit of renaming files on saving, so you may have to rename the file back to what is shown for programs to recognize them properly. For novice Lunux/Unix/OS-X users: Don't forget to set the executable bit after downloading the pre-built executables. Type "chmod +x jhead" at a shell window after downloading it to do this. You don't have to do this if you use one of the RPM packages.
change log I don't have access to a Mac or a Solaris box, so I have to wait until somebody sends me a compiled executable for those platforms whenever I make a new release. A program this small is not worth bothering restricting anybody with, and I'm too lazy to look into the ramifications of GPL or BSD liscenses. Besides, I hope more people integrate this sort of functionality into their programs, free or not free.
|