288f1305f9c4a14dfd027c28a701724c5a763759
[imager.git] / Changes
1 Imager release history.  Older releases can be found in Changes.old
2
3 Imager 0.62 - unreleased
4 ===========
5
6  - Makefile.PL now expands ~/path supplied to --incpath or --libpath
7    to /path under your home directory.
8    http://rt.cpan.org/Ticket/Display.html?id=29484
9
10  - the old dynaload code used Mach API functions to load dynamic
11    libraries on Mac OS X.  These APIs have been deprecated in OS X
12    10.5 and were causing some build problems.
13    So henceforth Imager uses the dlopen() family of functions, and you 
14    will need version 10.3 or later of OS X.
15
16 Bug fixes:
17
18  - samples/gifscale.pl sourced the base value for gif_top from
19    gif_left.
20    Thanks to Eleneldil G. Arilou for pointing this out.
21
22  - t/t82inline.t no longer loads B at runtime, to work around a bug
23    in some 5.005_0[45] installations.
24    http://rt.cpan.org/Ticket/Display.html?id=30508
25
26  - work around Module::Depends::Intrusive bug #21229
27    http://rt.cpan.org/Ticket/Display.html?id=30520
28
29  - the hardinvert filter no-longer inverts the alpha channel.
30    http://rt.cpan.org/Ticket/Display.html?id=30002
31
32  - the hardinvert filter now supports large samples
33
34 Imager 0.61_02 - 28 November 2007
35 ==============
36
37  - major TIFF support re-work
38    http://rt.cpan.org/Ticket/Display.html?id=20329
39
40  - added a C level image interface for accessing samples from 1-32
41    bits, exposed this at the perl level in getsamples()
42
43  - the conv filter now works at floating point precision for high bit
44    images
45
46  - added is_bilevel method to test whether an image should be written as
47    a bilevel image if the image format supports it.
48
49  - added -log-stderr as an Imager import list option
50
51  - added some important types to Imager::APIRef
52
53  - added test_image_double() to Imager::Test
54
55 Bug fixes:
56
57  - Imager::Fountain couldn't read GIMP gradient files with 10 or more
58    segments
59
60  - the scale() method with qtype mixing now handles images with an
61    alpha channel correctly.
62
63  - fixed a broken link from the "animated GIF" entry in the concept index.
64    Thanks to Slaven Rezic.
65    http://rt.cpan.org/Ticket/Display.html?id=30889
66
67  - on some perl's the infix expression parser test would fail due to
68    actions in the grammar returning false.  Made sure all actions return
69    a true value.
70    Thanks to Richard Fairhurst for spending a lot of time in tracking
71    down this problem.
72    http://rt.cpan.org/Public/Bug/Display.html?id=29562
73
74 Imager 0.61 - 5 November 2007
75 ===========
76
77  - added samples/gifscale.pl, which adjusts the screen size/position tags
78    when scaling an animated gif
79    http://rt.cpan.org/Ticket/Display.html?id=27591
80
81 Bug fixes:
82
83  - correct handling of sz in matrix_transform() - this should allow
84    perspective type transformations to work now.
85    http://rt.cpan.org/Ticket/Display.html?id=29936
86
87  - prevent a cast to integer warning on x64 builds in datatypes.c
88    also fixed some other type warnings
89    https://rt.cpan.org/Ticket/Display.html?id=30204
90
91  - some sub-directory tests depended on files produced by the parent
92    directory tests
93    http://rt.cpan.org/Ticket/Display.html?id=30203
94
95  - Imager::Font::Wrap doesn't correctly set savepos
96    thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
97    http://rt.cpan.org/Ticket/Display.html?id=29771
98
99  - test 171 in t/t01introvert.t was failing on perls configured to
100    use long double.
101    http://rt.cpan.org/Ticket/Display.html?id=29413
102
103  - the code for the transform2() uminus operator was missing a break.
104    Added tests for better code coverage of the ops.
105    http://rt.cpan.org/Ticket/Display.html?id=29296
106
107  - the SGI RLE compression code could overflow its compression buffer
108    http://rt.cpan.org/Ticket/Display.html?id=30334
109
110  - the 32-bit output function used by the SGI code only handled values
111    under 0x10000.  This was most noticable when writing large RLE images.
112    http://rt.cpan.org/Ticket/Display.html?id=30335
113
114  - validate chan_count for chans == NULL for each of the i_gsamp()
115    implementations.
116    http://rt.cpan.org/Ticket/Display.html?id=28985
117
118  - attempt to work around the test failure at 
119    http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
120    http://rt.cpan.org/Ticket/Display.html?id=29562
121
122  - improve the error messages produced when attempting to read or write
123    an unknown image file format.
124    http://rt.cpan.org/Ticket/Display.html?id=30103
125
126  - improve the transform2() documentation
127    http://rt.cpan.org/Ticket/Display.html?id=29267
128
129  - correctly generate the author key in META.yml
130    http://rt.cpan.org/Ticket/Display.html?id=30377
131
132  - correctly blend a rotated (or matrix_transformed()) image when
133    performing interpolation in the presence of an alpha channel.
134    Also corrected the centring of the rotated image on the output
135    image.
136
137 Imager 0.60 - 30 August 2007
138 ===========
139
140  - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
141    now has full SGI RGB image format, including RLE and 16-bit/sample
142    images.
143    https://rt.cpan.org/Ticket/Display.html?id=8666
144
145  - logging functions are now available in the API
146
147  - applied Gabriel Vasseur's patch
148    added documentation, further tests, and support for greyscale images
149    Obviously problems are my fault :)
150    https://rt.cpan.org/Ticket/Display.html?id=28142
151
152  - the mask for ICO/CUR images is now applied as an alpha channel to
153    the returned image.  For the old behaviour, supply ico_masked => 0
154    to read() or read_multi().  This should be less confusing when
155    using Imager as a general image processor.
156    https://rt.cpan.org/Ticket/Display.html?id=29001
157
158 Bug fixes:
159
160  - in some cases it's possible for giflib/libungif to return color 
161    indexes outside the range of colors defined by the image's palette.
162    We now expand the palette to match the indexes used.
163    Thanks to Gabriel Vasseur for reporting this.
164
165  - fixed various memory leaks that could occur when failing to read png,
166    jpeg, bmp or tga files.
167
168  - to avoid confusion, channels not present in the image are returned as
169    zero by getscanline().  This has no effect on the C level i_glin()
170    and i_glinf() API functions which continue to not set the unused
171    channels.
172
173  - the convert() method now returns an image of the same sample size as
174    the source image.
175    https://rt.cpan.org/Ticket/Display.html?id=28492
176
177  - remove repeated text in Imager::Files
178    http://rt.cpan.org/Ticket/Display.html?id=27589
179
180  - be even more explicit that scale() and friends don't modify the source
181    image, but return a new image.
182    http://rt.cpan.org/Ticket/Display.html?id=28570
183
184  - improve the error message from errstr() when you try to load a font
185    for which the driver hasn't been built in Imager.
186    http://rt.cpan.org/Ticket/Display.html?id=27571
187
188  - transparency is now enabled by default when writing GIF images
189    http://rt.cpan.org/Ticket/Display.html?id=27615
190
191  - Imager would not load on Windows 98
192    http://rt.cpan.org/Ticket/Display.html?id=27653
193
194 Imager 0.59 - 14 June 2007
195 ===========
196
197 Bug fixes:
198
199  - fixes a regression introduced by the fixes for RT 11972
200    http://rt.cpan.org/Ticket/Display.html?id=27546
201
202  - cropping outside the image would return an Imager object with
203    no low-level image object, instead of returning false.
204    Fixed by: Philip Gwyn (Leolo)
205    http://rt.cpan.org/Ticket/Display.html?id=27509
206
207 Imager 0.58 - 16 May 2007
208 ===========
209
210 No significant changes from 0.57_01.
211
212 Imager 0.57_01 - 11 May 2007
213 ==============
214
215  - added to_rgb16 to produce a 16-bit/sample version of an image
216
217  - improve freetype 1.x text output efficiency
218
219 Bug fixes:
220
221  - search another place for rgb.txt, and check all the places 
222    Imager::Color checks when deciding whether to skip testing it
223    http://rt.cpan.org/Ticket/Display.html?id=26064
224
225  - use a convolution kernel size based on the stddev rather than a
226    fixed size when performing a gaussian blur
227    http://rt.cpan.org/Ticket/Display.html?id=25645
228
229  - document the difference() method's mindist parameter, and debug it.
230
231  - put the Imager release number in the Inline::C generated code to
232    regenerate Inline code when a new release of Imager is installed.
233    http://rt.cpan.org/Ticket/Display.html?id=26278
234
235  - fix rendering on alpha channel images for the FreeType 1.x driver.
236    http://rt.cpan.org/Ticket/Display.html?id=11972
237
238  - fix rendering on alpha channel images for the T1lib driver.
239    http://rt.cpan.org/Ticket/Display.html?id=11972
240
241  - reworked library probing, we can now set more than one probe
242    function for a library.  Disabled the default (non-freetype-config)
243    library probe and added an extra probe function that searches for
244    both ft2build.h and whatever it includes, and adds -I as needed.
245    Hopefully this will fix build problems like
246    http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
247    http://rt.cpan.org/Ticket/Display.html?id=26086
248
249 Imager 0.57 - 30 Apr 2007
250 ===========
251
252 This is a maintenence release fixing a security issue in Imager.
253
254  - CRITICAL: a specially crafted compressed BMP file can cause a buffer
255    overflow in malloced memory.  There will be further discussion of
256    this issue in the ticket below.
257    http://rt.cpan.org/Ticket/Display.html?id=26811
258    CVE-2007-2459  CVE-2007-2413
259    The descriptions at cve.mitre.org varied in quality, please see the
260    ticket at rt.cpan.org for a more accurate description of the issue.
261
262 Imager 0.56 - 1 Apr 2007
263 ===========
264
265  - added support for reading 16-bit/sample PGM/PPM images
266
267  - added support for writing 16-bit/sample PGM/PPM images
268
269  - improved performance of reading PBM/PGM/PPM images
270
271  - added support for writing PBM images if the image is paletted and
272    contains only black and white
273
274  - added a new make_colors value - "mono"
275
276  - switched from the svn log Changes to a manual Changes to reduce
277    noise
278
279  - new sample code - samples/flasher.pl
280
281 Bug fixes:
282
283  - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
284    was returning an image object with an extra reference, this
285    resulted in a memory leak.
286    http://rt.cpan.org/Ticket/Display.html?id=24992
287
288  - fix rendering on alpha channel images for the FreeType 2.x driver
289    http://rt.cpan.org/Ticket/Display.html?id=11972
290
291  - reading bmp files now consitently handles short reads.  You can now
292    supply a parameter to treat a short read as successful and set
293    i_incomplete
294    http://rt.cpan.org/Ticket/Display.html?id=8426
295
296  - previously, reading ASCII PBM files required spaces between samples,
297    even though the format doesn't require that
298
299  - improved documentation of the unsharpmask filter (I hope)
300    http://rt.cpan.org/Ticket/Display.html?id=25531
301
302  - force flushing of the output from i_tt_dump_names() and test output
303    in t/t35ttfont.t to prevent output from being mixed up.
304    https://rt.cpan.org/Ticket/Display.html?id=24859
305
306  - rewrite a conditional expression as an if() to hopefully work around
307    a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
308    https://rt.cpan.org/Ticket/Display.html?id=25561
309
310  - avoid Data::Dumper in regops.perl to support older releases of perl
311    https://rt.cpan.org/Ticket/Display.html?id=24391
312
313 Imager 0.55 - 16 Dec 2006
314 ===========
315
316 This is primarily a bug fix release.
317
318 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
319
320 There is one new feature:
321
322  - the Win32 font driver now supports UTF8 (RT 22166)
323    http://www.cpanforum.com/threads/3276
324    http://rt.cpan.org/Ticket/Display.html?id=22166
325
326 Several bugs were fixed:
327
328  - the string() method would not output the string "0"
329    http://rt.cpan.org/Public/Bug/Display.html?id=21770
330
331  - fills.c was failing to compile on Solaris 10 (compiler unknown)
332    http://rt.cpan.org/Public/Bug/Display.html?id=21944
333
334  - the gif_disposal and gif_user_input tags weren't being read from
335    the file correctly
336    http://rt.cpan.org/Public/Bug/Display.html?id=22192
337
338  - gif.c was failing to build under MSVC
339    http://rt.cpan.org/Ticket/Display.html?id=23922
340
341  - in some cases strings passed to the string() method were treated as
342    terminated by NUL (chr 0)
343    http://rt.cpan.org/Public/Bug/Display.html?id=21770
344
345  - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
346    that's the default build name for zlib on Win32.
347    http://rt.cpan.org/Ticket/Display.html?id=23064
348
349  - search $Config{incpath} for headers too, which we should have been
350    doing all along.
351
352 Win32 font driver fixes:
353
354  - the global descent value from bounding box was the wrong sign
355    http://www.cpanforum.com/threads/3276
356
357  - if the first or last glyph overflowed the left or right side of the
358    advance width they would be clipped
359
360
361 Imager 0.54 - 14 Sep 2006
362 ===========
363
364 This is primarily a feature release:
365
366  - a new qtype value 'mixing' has been added to the scale()
367    method. This is faster than 'normal', slower than 'preview'. This
368    is based on the method used by pnmscale, and seems to produce less
369    blurry results than normal.
370    http://rt.cpan.org/Public/Bug/Display.html?id=20677
371
372  - the rubthrough() method can now render onto images with an alpha
373    channel.
374    http://rt.cpan.org/Ticket/Display.html?id=20678
375
376  - the read_multi() method now falls back to calling doing a single
377    image read via the read() method and write_multi() will now fall
378    back to calling write() if a single image is supplied. This means
379    you can simply call the read_multi() or write_multi() functions
380    without having to check if the type is formatted by that method.
381    http://rt.cpan.org/Ticket/Display.html?id=19457
382    http://rt.cpan.org/Ticket/Display.html?id=19458
383
384  - the GIF loop extension can now be written. If you don't have
385    libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
386    should upgrade.
387    http://rt.cpan.org/Ticket/Display.html?id=21185
388
389  - getscanline() and setscanline() can now read/write palette index
390    based data from/to the image for paletted images, by setting type to
391    'index'.
392    http://rt.cpan.org/Ticket/Display.html?id=20338
393
394  - we no longer hassle you to disable GIF support
395    http://rt.cpan.org/Ticket/Display.html?id=20687
396
397  - minor documentation fixes
398
399
400 Imager 0.53 - 26 Jul 2006
401 ===========
402
403 This is a bugfix release.
404
405 Some test code was left in a code path not covered by the test
406 suite. A test was added to cover this code path and the test code was
407 removed.
408 http://rt.cpan.org/Public/Bug/Display.html?id=20705
409
410
411 Imager 0.52 - 25 Jul 2006
412 ===========
413
414 This is primarily a feature release, but contains a fair few bug
415 fixes, new features:
416
417  - ability to read and write MS Windows ICO and CUR files
418
419  - you can now add file format plugins to support new file formats
420
421  - add POD coverage tests
422
423  - setcolors() and addcolors() now accept color names and so on
424    instead of requiring Imager::Color objects.
425    http://rt.cpan.org/Ticket/Display.html?id=20056
426
427  - flood_fill() can now fill to a specified border color instead of
428    just to the area the same color as the seed.
429    http://rt.cpan.org/Ticket/Display.html?id=19618
430
431
432 Bug fixes:
433
434  - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
435    calculating the advance width.
436    http://rt.cpan.org/Public/Bug/Display.html?id=20554
437
438  - bounding_box for the T1 driver wasn't including leading and
439    trailing spaces in the bounding box as the other drivers did, it also
440    produced strange results for empty strings or strings containing only
441    spaces
442
443  - when reading CMYK jpeg images they were being transferred to the
444    image object as is, producing a four channel image. It only looked ok
445    due to an old still unfixed Photoshop bug. We now convert from the
446    inverted CMYK that photoshop (and Corel for example) produce into RGB.
447    http://rt.cpan.org/Ticket/Display.html?id=20416
448
449  - reading a CYMK TIFF would result in a 4 channel image, reading any
450    image with more than 4 channels (eg. RGB with 2 alpha channels) would
451    result in an error.
452    http://rt.cpan.org/Ticket/Display.html?id=20415
453
454  - added /usr/local/include to the default include search path, since
455    we were already searching /usr/local/lib for libraries.
456
457 And various minor fixes and documentation updates.
458
459
460 Imager 0.51 - 23 Apr 2006
461 ===========
462
463  - fix a validation bug when processing JPEG EXIF data that can cause
464    a crash
465    http://rt.cpan.org/Public/Bug/Display.html?id=18496
466
467  - fix mis-processing of the src_maxx and src_maxy parameters of the
468    paste() method
469    http://rt.cpan.org/Public/Bug/Display.html?id=18712
470
471  - fix a problem in Imager's "smart" handling of the color parameter
472    to various methods.
473    http://rt.cpan.org/Public/Bug/Display.html?id=18561
474
475
476 Imager 0.50 - 29 Mar 2006
477 ===========
478
479  - CRITICAL: fixes a segmentation fault from attempting to write a 2
480    or 4 channel image to jpeg or a 2 channel image to tga where the
481    output is an in-memeory buffer.
482    http://rt.cpan.org/Public/Bug/Display.html?id=18397
483
484  - fixes an incorrect pointer parameter in the PNG code
485    http://rt.cpan.org/Public/Bug/Display.html?id=18051
486
487  - skip Inline::C tests when building in a directory with spaces
488    http://rt.cpan.org/Public/Bug/Display.html?id=18049