PEL Version 0.9.1

Finally, a new version of PEL — get it before your neighbor! Pick your favorite:

The release notes follow:

Added setExif(), getExif(), and clearExif() methods as a convenient and recommended way of manipulating the Exif data in a PelJpeg object. Improved PelEntryTime to deal with timestamps in the full range from year 0 to year 9999. Removed PelTag::getDescription() because the descriptions were out of context. A new example demonstrates how to resize images while keeping the Exif data intact. Added a Japanese and updated the French and Danish translations.

That was the executive summary, there’s a bit more detail about the changes below:

  • The constructors of PelJpeg and PelTiff can now take an argument which is used for initialization. This can be a filename (equivalent to calling loadFromFile()), a PelDataWindow (equivalent to load()). The PelJpeg constructor will also accept an image resource.

  • Added PelJpeg::setExif(). This method should always be used in preference to PelJpeg::insertSection() and PelJpeg::appendSection(). One should actually not be using appendSection() unless one is very sure that the image has not been ended by a EOI marker.

  • Added PelJpeg::getExif(). This method is the new preferred way of obtaining the PelExif object from a PelJpeg object. Updated the examples and code to make use of it.

  • An example of how to resize images while keeping the Exif data intact is given in resize.php.

  • The PelTag::getDescription() method is no more. The descriptions were taken directly from the Exif specification and they were often impossible to translate in a meaningful out of context because they had references to figures and tables from said specification.

  • Fixed bug in edit-description.php which still called the constructor of PelIfd in the old pre-0.9 way.

  • Updated documentation of PelIfd to make it clearer that it can be used as an array because it implements the ArrayAccess SPL (Standard PHP Library) interface.

  • Added Japanese translation by Tadashi Jokagi.

  • Update by David Lesieur of the French translation.

  • Rewrote entry for version 0.9 in NEWS to highlight the API incompatible changes made from version 0.8.

  • Renamed test.php to run-tests.php and implemented a simple search functionality for finding the SimpleTest installation.

  • Rewrote script to work with Subversion.

Finally, if you insist, then go read the full ChangeLog, there’s lots of good stuff in this release :-)


  1. Chris Banford:

    Hi Marin!

    Was hunting around for a way to write data to a .jpg’s EXIF and came across your PEL library. At first I thought ‘”Oh S**t” is that complex — I’ll never make it work’ but have just spent the last hour or so and amazing, I’ve figured it out! Very, very cool.

    Just wanted to say that I really appreciate your work/efforts, and that if you ever make it to Zermatt, the first beer’s on me ;)

    I’ll send you an email in a few months, when our project goes live, so you can see (and maybe link?) where your efforts have been used.

    Thanks again!

  2. Martin Geisler:

    Cool, I’m glad to hear that you like it! I will certainly like to include a link to your project on the PEL homepage, just let me know.

    Also, if you have problems with PEL, then feel free to ask on the PEL Devel list. I will probably not have that much time (I have mostly shifted to programming in Python these days), but I will try to help.

    If you have any suggestions on how to make a better HOWTO for PEL, then I would also be interested. I know that PEL is fairly low-level in the way that it exposes the JPEG and Exif structures. More convenience functions are definitely needed.

    Oh, about the bear: I actually visited Zermatt just two months ago — my wife is from Wallis :-) It’s a small world…

Leave a comment