28th June 2004, 01:53 pm
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)
11th June 2004, 11:25 am
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!
9th June 2004, 07:51 pm
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.
1st June 2004, 09:15 am
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.