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