Tony Cook [Tue, 25 Jul 2006 04:43:38 +0000 (04:43 +0000)]
bump to 0.52
This is primarily a feature release, but contains a fair few bug
fixes, new features:
- ability to read and write MS Windows ICO and CUR files
- you can now add file format plugins to support new file formats
- add POD coverage tests
- setcolors() and addcolors() now accept color names and so on instead
of requiring Imager::Color objects.
- flood_fill() can now fill to a specified border color instead of
just to the area the same color as the seed.
Bug fixes:
- bounding_box for the T1 driver wasn't converting UTF8 to ascii when
calculating the advance width.
- bounding_box for the T1 driver wasn't including leading and trailing
spaces in the bounding box as the other drivers did, it also produced
strange results for empty strings or strings containing only spaces
- when reading CMYK jpeg images they were being transferred to the
image object as is, producing a four channel image. It only looked
ok due to an old still unfixed Photoshop bug. We now convert from
the inverted CMYK that photoshop (and Corel for example) produce
into RGB.
- reading a CYMK TIFF would result in a 4 channel image, reading any
image with more than 4 channels (eg. RGB with 2 alpha channels)
would result in an error.
- added /usr/local/include to the default include search path, since
we were already searching /usr/local/lib for libraries.
And various minor fixes and documentation updates.
Tony Cook [Thu, 20 Jul 2006 13:42:04 +0000 (13:42 +0000)]
bounding_box() for t1 driver fonts was treating spaces as empty space
when calculating the bounds, which they are, but this is inconsistent
with other drivers. This was especially a problem for strings
containing only spaces where the left bound would end up far to the
right of the right bound, and similarly for the ascent and descent.
calculating the bounding box for an empty string invoked special
behaviour in t1lib, making it unreliable.
Tony Cook [Fri, 14 Jul 2006 14:57:44 +0000 (14:57 +0000)]
CMYK jpeg images were being read as 4 channel images, even though they
have no alpha channel.
The colors were being transferred directly from the JPEG image data,
this only looked correct because of an old bug in photoshop, kept for
compatibility in later versions. Photoshop inverts the ink values in
the file, so max cyan coverage is stored at 0, and min as 255, and so
on.
CMYK jpegs are now read as 3 channel images. The colors are now
converted adjusting for the photoshop bug, cmyk images from the only
other source I have, corel draw 9, are inverted in the same way,
presumably for compatibility with photoshop.
If anyone has an application that produces technically correct CMYK
jpegs, please provide a sample in jpeg and tiff form so I can attempt
to deal with it.
Tony Cook [Sat, 1 Jul 2006 05:38:11 +0000 (05:38 +0000)]
don't include the line number in the From comment so since unrelated edits
were causing changes to APIRef.pm. This is still possible but they should
be a lot less frequence.
Tony Cook [Wed, 19 Apr 2006 12:19:56 +0000 (12:19 +0000)]
- Calling setpixel() with color set to [ 0, 0, 0 ] would crash with
Can't locate object method "new" via package "Imager::Color::Float" ...
- having the color parameter code create floating point colors could
cause other problems too, since most of the underlying functions can't
handle them, so removed the attempt to create float colors.
Tony Cook [Thu, 23 Mar 2006 14:09:57 +0000 (14:09 +0000)]
- added support for registering file readers
- if you supply and unknown type value (or Imager probes and finds
one) then Imager will attempt to load "Imager::File::\Utypecode" (this
can register a file reader.)
- note: these changes may mean slightly different errors if you call
read_multi() with no file or type parameters, since read_multi() now
attempts to do the same file format probe that read() does.
Tony Cook [Tue, 14 Mar 2006 00:50:09 +0000 (00:50 +0000)]
remove the reference to IRC from SUPPORT, I'm not paying enough
attention there for it to be useful. Yes, there is a channel, but the
mailing list/perlmonks/direct email/cpanratings are more likely to get
you some help.
Tony Cook [Sun, 5 Mar 2006 13:54:59 +0000 (13:54 +0000)]
- some jpeg.c logging calls didn't include parameters enough to match
the supplied format string.
- in some cases memory wasn't being freed during error handling when
reading jpeg images
Tony Cook [Sun, 5 Mar 2006 12:59:01 +0000 (12:59 +0000)]
- tifflib 3.8.0 with MDI (Microsoft(tm) TIFF) support produces a
different error when it reads a file with a bad magic number.
Update the test to handle the possible messages.
Tony Cook [Sun, 5 Mar 2006 08:36:09 +0000 (08:36 +0000)]
- handle short EXIF user_comment fields correctly, previously Imager
would read (and potentially) write beyond the end of an allocated block,
or through a NULL pointer if the EXIF user_comment field was less
than 8 bytes long.
https://rt.cpan.org/Ticket/Display.html?id=17981