Archive for June 2004

PEL version 0.5 released

The PHP EXIF Library (PEL) is written in pure PHP and makes it easy to read and write EXIF headers found in JPEG and TIFF images.

Notes

This release has been tested with images from a number of different camera models (from Fujifilm, Nikon, Ricoh, Sony, and Canon), leading to the discovery and fixing of a number of bugs. The API for PelJpeg::getSection() was changed slightly, making it more convenient to use. All classes and methods are now documented.

Changes

  • Some images have content following the EOI marker — this would make PEL thrown an exception. The content is now stored as a PelJpegContent object associated with the fictive marker 0x00.

  • Added code to handle images where the length of the thumbnail image is broken. PEL would previously throw an exception, but the length is now adjusted instead, and the parsing continues.

  • Fixed a number of bugs regarding the conversion back and forth between integers and bytes. These bugs affected the parsing of large integers that would overflow a signed 32 bit integer.

  • Fixed bug #976782. If an image contains two APP1 sections, PEL would crash trying to parse the second non-EXIF section. PEL will now just store a non-EXIF APP1 section as a generic PelJpegContent object.

  • Removed the PelJpegSection class. This lead to a rewrite of the PelJpeg::getSection() method, so that it now takes a PelJpegMarker as argument instead of the section number.

  • The byte order can now be specified when a PelTiff object is converted into bytes.

  • Updated documentation, PEL is now fully documented.

Download PEL

PEL is hosted on SourceForge:

http://prdownloads.sf.net/pel/pel-0.5.tar.bz2?download (354 KiB)
http://prdownloads.sf.net/pel/pel-0.5.tar.gz?download (514 KiB)
http://prdownloads.sf.net/pel/pel-0.5.zip?download (676 KiB)

A thunder storm

Gdesklets during a thunderstorm I was lying on my couch, taking a nap, when I started to hear the distinct sound of water pouring down — lots of water pouring down — outside my window.

I’ve always liked it when it is raining heavily, it’s very cosy to sit indoor with some hot tea (or hot chocolate… umm!) and look out on the rain. It’s perfect weather to code in, too!

On the right you’ll see a small crop of a screenshot. I’ve been using gDesklets for some time now, and I have a great pile of them to the right on my desktop. They are nice eye-candy and also a little bit useful. If only Enlightenment would understand that the 12 little windows should be left out of my tab-list, then I would be really happy. I hope that DR16.7 has support for the hints sent out by the desklets — I haven’t tried it yet since it’s still in pre-release and nobody seems to have packaged it for [Debian][]. I’ve thought about using another window manager, but I’m very fond of Enlightenment, especially how it chooses to place new windows: I can predict fairly well where the new window will be opened because I’ve been using it for so long.

Hmm… I’ve been using Enlightenment from the very first time I installed GNU/Linux, so I must have been using it for five years now. Wow! That is one of the greatest things about GNU/Linux: you can keep using your programs for years because they are reliable — of course there has been updates to Enlightenment during the years, but basically it has just worked, just like my favorite program: [Emacs][] which quickly becomes your reliable, quick, familiar friend. You know that it wont suddenly stop working, you know that will display your files tomorrow as it did today. When I see people working in programs like MS Word I often have a hard time understanding why they put up with it? They want to move some text around in their huge report — Word decides to change the font during the move. They want take their finished report with then to their university department and print it there — Word decides to change the margins (or is it the papersize?) during the move, making all their efforts in avoiding poor page breaks irrelevant.

Anyway… enough ranting about the deficiencies of MS Word — I’m of course using [LaTeX][] which may look strange when you sees it for the first time, but will later save you huge amounts of time and spare you of many frustrations, and give your papers a very professional look.

During the storm I saw a funny coincidence: I have the PSI-Weather desklet running on top of the psi-alt-uptime desklet, and that gives the funny impression that Tux is being hit by the lightning. I didn’t do it on purpose — honest!

PEL Version 0.4 Released

I’ve released my favorite project — the PHP EXIF Library — once again. This time the focus is on making PEL speak other languages than English. The release notes and a summary of the changes follow.

Notes

The infrastructure for internationalisation has been put in place. Preliminary translations for Danish, German, French, and Spanish is included. Support for tags with GPS information were disabled due to conflicts with a number of normal tags.

Changes

  • Disabled the code that tries to lookup the title and description of the GPS related tags, since those tags have the same hexadecimal value as a number of other normal tags. This means that there’s no support for tags with GPS information.

  • Marked strings for translation throughout the source code.

  • Added German, French, and Spanish translations taken from libexif. The translations were made by Lutz Müller, Fabian Mandelbaum, and Arnaud Launay, respectively.

  • Added Danish translation.

  • Added new static methods Pel::tra() and Pel::fmt() which are used for interaction with Gettext. The first function simply translates its argument, the second will in addition function like sprintf() when given several arguments.

  • Updated documentation, both the doc comments in the code and the README and INSTALL files.

The first exam is approching

Mikkel and I have been studying for our first exam in DAIMI:dSoegOpt, he will be having his exam today (good luck!) and I will have mine on Thursday. Reading up on the stuff went surpricingly well — I was afraid that it would be really hard considering that I have made way too few exercises during the semester. The exercises were simply too difficult, but when the exam is oral then making the exercises doesn’t really matter — I hope! :-)

That’s all for now.