1b248ffb79cba5660a0a30a2d0dec829cd3dce5f
[imager.git] / Changes
1 Imager release history.  Older releases can be found in Changes.old
2
3  - drawing anti-aliased filled circles is now 10 to 50 times faster
4    depending on the size of the circle.
5    https://rt.cpan.org/Ticket/Display.html?id=101682
6
7  - enhancements to polygon filling:
8
9    - added a mode parameter to control how overlapping regions behave
10
11    - added a polypolygon() method to fill more than one polygon at a
12      time
13
14    - polygon filling is now exposed through the API.
15
16  - added colormodel(), alphachannel() and colorchannels() methods.
17    These were added for two reasons:
18
19     - a future version of Imager may allow the number of channels in
20       an image to not directly represent the color model of an image.
21       eg. a greyscale TIFF image with multiple alpha channels.
22
23     - a future version of Imager may allow an image to be read without
24       translation, for example a TIFF file that contains measurements
25       from an instrument.  Currently Image transforms the samples into
26       the range 0.0 ... 1.0 which may means the user has to translates
27       the value back.
28
29       An untranslated image would be unusable as image data, so
30       colormodel() would return "unknown" in this case.
31
32       Similarly a CMYK image might be returned as an "unknown" color
33       model image, if the caller chooses to disable translation to
34       RGB.
35
36 Imager 1.001 - 2 Jan 2015
37 ============
38
39  - both Imager and perl 5.21.3 define my_strerror(), prevent a conflict
40    Thanks to Slaven Rezic for the report and the patch.
41    https://rt.cpan.org/Public/Bug/Display.html?id=98234
42
43  - GIF: clean-up a test file if the test for the giflib 4.2.0 file
44    version bug fails.
45
46  - fix Imager::Matrix2d::rotate()'s centre point handling
47    https://rt.cpan.org/Public/Bug/Display.html?id=99959
48
49  - ICO: don't apply the icon mask to images with an alpha channel by
50    default
51    https://rt.cpan.org/Public/Bug/Display.html?id=99507
52
53  - make verbose probing output more verbose
54
55  - use Imager::Probe to probe for freetype 1.x
56    https://rt.cpan.org/Ticket/Display.html?id=100502
57
58  - The --enable and --disable parameters to the top-level Makefile.PL
59    work again.
60
61  - update the bundled/modified Devel::CheckLib to handle the gcc-4
62    symlink on Cygwin
63
64 Imager 1.000 - 28 Jul 2014
65 ============
66
67 There's nothing special about Imager 1.000, it's just another release.
68
69  - fix the skip check for the iolayer qr// buffer test
70
71  - improve error reporting for the iolayer test failing on a small
72    number of Win32 CPAN testers
73
74 Imager 0.99_02 - 21 Jul 2014
75 ==============
76
77  - Imager::Filter::Mandelbrot (and dynfilt/mandelbrot.c) - initialize
78    the blue channel in the generated palette, and allow each color
79    component to be in the range 100..255 instead of just 100..254.
80    Thanks to Ralf Neubauer.
81    https://rt.cpan.org/Ticket/Display.html?id=97086
82
83  - revert "improved the XS for i_io_read() and i_io_raw_read()"
84    This caused problems with older perls and didn't provide much of a
85    performance improvement.
86
87  - support Inline 0.57 and later.
88    Inline 0.57 changed the "with" interface.
89    https://rt.cpan.org/Ticket/Display.html?id=97108
90
91  - don't define our own MAXINT macro, it conflicts with windows header
92    files and in a few places it was the wrong value to use anyway.
93    https://rt.cpan.org/Ticket/Display.html?id=96425
94
95 Imager 0.99_01 - 29 Jun 2014
96 ==============
97
98  - GIF: add support for giflib 5.1.0, which added error code pointer
99    parameters to EGifCloseFile() and DGifCloseFile().
100    https://rt.cpan.org/Ticket/Display.html?id=96756
101
102  - GIF: avoid a double-free when do_write() fails.
103
104  - fix SV type probing to work on perl before 5.12.  Broken in 0.99.
105    https://rt.cpan.org/Ticket/Display.html?id=96761
106
107  - PNG: skip the benign error test before libpng 1.6.0, since the
108    error we're testing didn't exist before 1.6.0.
109    https://rt.cpan.org/Ticket/Display.html?id=94717 (continued)
110
111 Imager 0.99 - 25 Jun 2014
112 ===========
113
114  - Imager::IO->new_buffer() (and hence Imager->read()'s data
115    parameter) now accepts a reference to a scalar as well as just a
116    plain scalar.
117    https://rt.cpan.org/Ticket/Display.html?id=92785
118
119  - Imager::IO->new_buffer() now always makes a copy of the passed in
120    buffer to avoid problems with temporary objects used for the return
121    value of SvPVbyte().
122    https://rt.cpan.org/Ticket/Display.html?id=92785
123
124  - improved the XS for i_io_read() and i_io_raw_read()
125    https://rt.cpan.org/Ticket/Display.html?id=92738
126
127  - load plugins from absolute paths on Android
128    Thanks to Brian Fraser.
129    https://rt.cpan.org/Ticket/Display.html?id=93272
130
131  - added the jpeg_optimize parameter for writing JPEG files.  This can
132    significantly reduce file sizes, but uses more memory and time.
133    https://rt.cpan.org/Ticket/Display.html?id=94292
134
135  - the autolevels filter now works on the luminosity of the image
136    rather then working per channel.  The old autolevels filter is
137    still available as "autolevels_skew".
138    https://rt.cpan.org/Ticket/Display.html?id=94413
139
140  - Imager::File::PNG now supports libpng 1.6.10.
141    1.6.10 changed CRC errors from benign errors to normal errors,
142    which broke the test which used CRC errors to check for benign
143    error support.  Switched to using a 1-bit grey-scale image with a
144    palette to test for benign errors.
145    https://rt.cpan.org/Ticket/Display.html?id=94717
146
147 Imager 0.98 - 3 Jan 2014
148 ===========
149
150 Incompatible changes:
151
152  - the return value of setpixel() has changed.
153
154    Previously the return values for undrawable pixels vs caller errors
155    changed depending on whether you used the multiple pixel calling
156    mechanism, or the single pixel mechanism.
157
158    Now:
159
160     - for an invalid parameter, such as an unknown colour, or missing
161       parameter, an empty list (or undef in scalar context) is
162       returned, and errstr() is set,
163
164     - otherwise the number of pixels drawn is returned.  If none of
165       the pixels could be drawn (they were all outside the image), "0
166       but true" is returned.
167
168    https://rt.cpan.org/Ticket/Display.html?id=87650
169
170 Other changes:
171
172  - when drawing on an image with an alpha channel where the source
173    minimum is greater than zero, Imager would read from beyond the end
174    of a malloc() allocated buffer.  In rare circumstances this could
175    lead to some of the source image not being written to the target
176    image, or possibly to a segmentation fault.
177    I don't believe this has any security concerns beyond that.
178
179  - if the first text drawn with Imager::Font::T1 is not anti-aliased,
180    text drawn would be nonsense.  This would also read beyond the end
181    of a malloced buffer.
182
183  - non-AA text drawn with an Imager::Font::TT (Truetype 1) font would be
184    truncated early.
185    https://rt.cpan.org/Ticket/Display.html?id=88993
186
187  - Imager::Font::Wrap no longer requires the image parameter.
188    https://rt.cpan.org/Ticket/Display.html?id=87338
189
190  - a documentation typo fix in Imager::Transformations
191    Thanks to Adrian Yee.
192    https://rt.cpan.org/Ticket/Display.html?id=88598
193
194  - Image::Probe, Imager's internal module for probing library
195    locations now searches the directories specified by LD_RUN_PATH,
196    LD_LIBRARY_PATH, DYLD_LIBRARY_PATH and LIBRARY_PATH for libraries,
197    and the corresponing s/\blib$/include/ directories for header
198    files.
199    https://rt.cpan.org/Ticket/Display.html?id=86428
200
201 Imager 0.97 - 15 Jul 2013
202 ===========
203
204 No changes from 0.96_02.
205
206 Imager 0.96_02 - 8 Jul 2013
207 ==============
208
209  - PNG: treat a version mismatch between headers and library as a
210    probe failure.
211    https://rt.cpan.org/Ticket/Display.html?id=86659
212
213  - PNG: the check for benign error support is more complex than a
214    simple library version check, check for the appropriate macro.
215    Thanks for Slaven Rezic for following up on my CPAN Testers result
216    queries.
217    https://rt.cpan.org/Ticket/Display.html?id=86659
218
219  - W32: add a missing head1 AUTHORS to the old Win32.pm
220    https://rt.cpan.org/Ticket/Display.html?id=86658
221
222 Imager 0.96_01 - 1 Jul 2013
223 ==============
224
225  - TIFF: handle SampleFormat = 2 by translating the signed integer
226    values to unsigned by flipping their sign bits.
227
228    Handle SampleFormat = 3 where possible.
229
230    SampleFormat is ignored for paletted images.
231
232    Mixed SampleFormat are handled incorrectly, since libtiff returns
233    only the first SampleFormat value, and an image with both an alpha
234    channel and SampleFormat = 2 for color channels probably has a
235    different SampleFormat for the alpha channel.
236
237    https://rt.cpan.org/Ticket/Display.html?id=74540
238
239  - XS clean up:
240      https://rt.cpan.org/Ticket/Display.html?id=69243
241
242    - Imager::Color's rgba() method now returns its values as integers
243      instead of floating point. (IV instead of NV).
244
245    - The XS for i_map() and i_matrix_transform() now use the AV *
246      typemap instead of rolling their own.
247
248    - The XS for DSO_call() now uses the HV * typemap instead of
249      rolling it's own.
250
251    - The XS for i_poly_aa(), i_poly_aa_cfill(), i_transform() and
252      i_gradgen() now use a new T_AVARRAY typemap that greatly
253      simplifies the XS code.
254
255    - many other minor XS changes
256
257    - some XS code formatting
258
259  - TT (Freetype 1.x) and FT2 (Freetype 2.x) non-antialiased rendering
260    now renders in alpha-combining mode, to match antialiased output.
261    https://rt.cpan.org/Ticket/Display.html?id=73359
262
263  - add sample code and cookbook notes for drawing a blurred drop-shadow.
264
265  - add support for libpng 1.6, which changed the defaults for
266    reporting some types of error.
267    https://rt.cpan.org/Ticket/Display.html?id=85746
268
269  - FT2: use gsamp/psamp() to transfer pixels from the work image to
270    the output image instead of gpix/ppix.
271    https://rt.cpan.org/Ticket/Display.html?id=83478
272
273  - eliminate various GCC warnings, mostly initialized but otherwise
274    unused variables.
275
276 Imager 0.96 - 19 May 2013
277 ===========
278
279  - rearrange Imager's test files.
280    https://rt.cpan.org/Ticket/Display.html?id=84596
281
282  - Imager::Probe::_gcc_lib_paths now forces C locale.
283    A sufficiently recent gcc prints localized keys for the search
284    paths, which avoids that localization.
285    https://rt.cpan.org/Ticket/Display.html?id=84963
286
287  - fix a pod error detected by Pod::Simple 3.27 and laterm and skip
288    pod tests unless AUTOMATED_TESTING or IMAGER_AUTHOR_TESTING is set
289    and true.
290    https://rt.cpan.org/Ticket/Display.html?id=85262
291    reported by Andreas König
292
293  - add a test for unclosed POD in C source, and fix the errors it
294    found.
295    https://rt.cpan.org/Ticket/Display.html?id=74875
296
297  - fix some spelling errors detected by the newer aspell in Debian
298    Wheezy.
299
300  - remove a trailing ' from lib/Imager/Font/Test.pm's POD
301    thanks to gregor herrmann <gregoa@debian.org>
302    https://rt.cpan.org/Ticket/Display.html?id=85413
303
304  - add a test for standard =head1 commands and fix the errors found
305
306 Imager 0.95 - 19 Apr 2013
307 ===========
308
309  - handle the SVf_UTF8 flag correctly on magic strings passed to
310    Imager::IO's write() and raw_write() methods.
311    This may misbehave in perl 5.6.x since the UTF8 flag may not be
312    visible in the main SV after SvGETMAGIC().
313    https://rt.cpan.org/Ticket/Display.html?id=83438
314
315  - document that bounding_box() ignores the transformation matrix
316    supplied to tranform() for fonts.
317    https://rt.cpan.org/Ticket/Display.html?id=84106
318
319 Imager 0.94_02 - 5 Apr 2013
320 ==============
321
322  - enable debug logging for the standard font tests
323
324  - skip the overloaded UTF-8 text output checks on 5.6.x and earlier,
325    due to a bug in that version of perl.
326
327  - don't test for read() failing on a write-only handle in 5.8.x and
328    earlier, this was fixed in change 862083f7e4 in perl.
329
330  - report the version of Inline found during testing (an attempt to
331    diagnose some intermittent failures.)
332
333 Imager 0.94_01 - 2 Mar 2013
334 ==============
335
336  - NOTE: possibly backward incompatible:
337    support reading from/writing to perl filehandes that aren't raw
338    files.
339
340    This allows Imager's I/O to honour handles with layers such as
341    gzip, scalar file handles or tied file handles.
342
343    This is backward incompatible in that previous Imager would simply
344    use fileno() to retrieve the fd for the file and call write(2) etc
345    on it directly.
346    https://rt.cpan.org/Ticket/Display.html?id=78843
347
348  - moved most of README to lib/Imager/Install.pod which should make it
349    more accessible to the "web" generation, also significantly updated
350    and re-worked it.
351
352  - updated README's for the separately distributed modules to refer to
353    Imager::Install, and that they need -dev versions of packages
354    https://rt.cpan.org/Ticket/Display.html?id=81265
355
356  - the JPEG test code now reports the compile-time library version
357
358  - avoid a possible compiler optimization issue on CentOS 5.9 i386 by
359    rearranging (and mildly optimizing) some code.
360    https://rt.cpan.org/Ticket/Display.html?id=83212
361
362  - fix a POD error in Imager::Fill (detected on new Pod-Simple)
363    https://rt.cpan.org/Ticket/Display.html?id=83434
364
365  - fix a broken link to Graphics::Magick
366    https://rt.cpan.org/Ticket/Display.html?id=82743
367
368  - drawing text to a channel with FT2 would draw with random coverage
369    due to an uninitialized alpha channel.
370
371  - marked the function pointer underlying the mm_log() API with the
372    correct gcc magic and fixed the resulting warnings.
373
374  - fixed some other compiler warnings
375
376  - Imager::Font::W32 now properly reports text drawing errors
377    https://rt.cpan.org/Ticket/Display.html?id=70098
378
379  - handle the SVf_UTF8 flag correctly on magic (eg. overloaded)
380    strings passed as text to draw(), bounding_box(), has_chars(),
381    glyph_names() (where supported) in each of the font drivers.
382    This may misbehave in perl 5.6.x since the UTF8 flag may not be
383    visible in the main SV after SvGETMAGIC().
384    https://rt.cpan.org/Ticket/Display.html?id=83438 (partial)
385
386 Imager 0.94 - 15 Dec 2012
387 =========================
388
389 Variations on some of these changes were included in development
390 releases.
391
392  - improved thread safety
393    - the internal error stack and log file handle are now in a per-thread
394      context object
395    - JPEG now captures IPTC information in a thread-safe way
396    - avoid globals where possible for warning capture in libtiff
397    - use a mutex to avoid re-entering thread-unsafe giflib
398    - use a mutex to avoid re-entering thread-unsafe tifflib
399    - use a mutex to avoid re-entering thread-unsafe T1Lib
400    - use a library handle per thread for freetype 2.
401    - use an engine handle per thread for freetype 1.x.
402    - originally these changes broke ABI compatibility, this has been
403      restored.
404
405  - clarify the return value of getpixel();
406    https://rt.cpan.org/Ticket/Display.html?id=81198
407
408  - fixed a race condition in parallel testing for T1
409
410  - fixed a bug in handling yoff for untransformed image-based fills
411
412  - documentation improvements for Imager::Fill
413
414  - FT2: report the library version while testing.
415
416 Imager 0.93 - 15 Oct 2012
417 ===========
418
419 Bug fixes:
420
421  - previously a transparency enabled GIF write (the default) would
422    always use a GIF89a header even if none of the images were
423    transparent.
424
425  - previously the probe step for freetype-config would fail on cygwin
426
427  - catch an invalid matrix parameter to convert() instead of crashing
428    https://rt.cpan.org/Ticket/Display.html?id=79922
429
430  - remove the 16-bit/sample limitation from the documentation for
431    setsamples(), it hasn't applied for many releases.
432    https://rt.cpan.org/Ticket/Display.html?id=79989
433
434  - don't copy setsamples() data parameter, it may be a large scalar
435    https://rt.cpan.org/Ticket/Display.html?id=79990
436
437  - clean up .dSYM directories generated performing probes on OS X
438    Mountain Lion.
439
440  - pass the --verbose command-line option through to Imager::Probe in
441    sub-module's Makefile.PLs
442    https://rt.cpan.org/Ticket/Display.html?id=75878
443
444 Enhancements:
445
446  - support for giflib 5.0. (5.0.1 and later)
447    https://rt.cpan.org/Ticket/Display.html?id=79029
448    The giflib API Imager uses doesn't have a mechanism to set the
449    header version in 5.0.0.
450
451  - update the GIF library probe code to check for the new giflib 5.0.1
452    EGifSetGifVersion() function, and to check for the giflib 4.2.0
453    uninitialized gif89 bug.
454    https://rt.cpan.org/Ticket/Display.html?id=79679
455    http://sourceforge.net/tracker/?func=detail&aid=3574283&group_id=102202&atid=631304
456
457  - avoid static variables when capturing IPTC data from JPEG files
458
459  - match Imager::Font;:T1's error message translations to those from
460    later versions of T1Lib.
461
462  - for libtiff versions that support extended warning handlers (3.8.0
463    or later), use them to avoid some global variables.
464
465  - note Image::ExifTool for better metadata support.
466    https://rt.cpan.org/Ticket/Display.html?id=79251
467
468 Imager 0.92 - 14 Aug 2012
469 ===========
470
471  - giflib 4.2 eliminates the GIF_LIB_VERSION macro, handle that
472    correctly for both probing and runtime.
473    https://rt.cpan.org/Ticket/Display.html?id=77672
474
475  - allow building JPEG/imexif.c on C89 compilers.
476
477  - allow building GIF/imgif.c on C89 compilers.
478
479 Imager 0.91 - 4 Jun 2012
480 ===========
481
482 Bug fixes:
483
484  - The size of rotated images is no longer rounded up so aggressively.
485    Added rounding to the linear interpolation done for rotate() and
486    matrix_transform() for 1 and 3 channel 8-bit images.
487    Adjusted the two tranlate matrices used to build the final rotation
488    matrix to use the distance between the outlier pixels rather than
489    the pixel dimensions (ie. dimension-1).
490    With all of this the output of rotate(degrees => 270) on an 8-bit
491    image exactly matches the output of rotate(right => 270).
492    https://rt.cpan.org/Ticket/Display.html?id=77063
493
494 Other changes:
495
496  - eliminate the old IIM_new(), IIM_DESTROY() names from Imager's
497    internals, those names only matter for the XS interface.
498
499  - improve error reporting when PERL_INITIALIZE_IMAGER_CALLBACKS finds
500    the API level compiled into a loadable module such as
501    Imager::File::GIF doesn't match that of Imager.  Previously it
502    could be difficult to determine exactly which module was failing to
503    load.
504    https://rt.cpan.org/Ticket/Display.html?id=77173
505
506  - added Imager->check_file_limits() as an interface to the
507    i_int_check_image_file_limits() API.
508
509  - Imager->set_file_limits(reset => 1) now resets the limits to the
510    defaults rather than setting them all to unlimited.
511
512  - wrote a brief security note as Imager::Security
513    https://rt.cpan.org/Ticket/Display.html?id=68910
514
515 Imager 0.90 - 30 Apr 2012
516 ===========
517
518 Bug fixes:
519
520  - Imager::Test::is_imaged() attempted to process an "epsilon"
521    parameter but the prototype didn't allow for the extra parameter.
522    Corrected the prototype.
523
524  - when downconverting samples (eg. from floating point to 8 bit)
525    Imager now rounds the sample value rather than attempting to
526    allocate input values over output values equally.  The old
527    behaviour had the probably surprising effect of converting a
528    floating point 2.1/255.0 into an 8-bit 3 rather than the expected
529    2.
530    This may result in slightly different 8 or 16-bit output images.
531
532  - BI_BITFIELD BMP images were handled incorrectly, both in
533    incorrectly calculating the space required for the masks and in
534    processing the image data itself.
535    https://rt.cpan.org/Ticket/Display.html?id=76736
536
537  - some odd width BMP BI_RLE4 images use run lengths that run one off
538    the edge of the image.  Imager now allows this, discarding the
539    extra column.
540
541  - odd length RLE4 runs in BMP images were decoded incorrectly.
542
543  - pkg-config could sometimes return a library that was in a directory
544    EU::MM / $Config{libpth} doesn't know about, but the compiler did.
545    If no -L is included in the pkg-config library information check if
546    EU::MM can find the library, and if not, search our configured
547    directories and insert that into the library flags.
548    https://rt.cpan.org/Ticket/Display.html?id=75869
549
550  - Imager::Probe can now probe for libraries with dependent libraries,
551    common for static linking, eg. libpng requires libz.
552    https://rt.cpan.org/Ticket/Display.html?id=74043
553
554  - libpng 1.5 specific probes were looking for libpng 1.4 filenames.
555
556  - added alternative probe configurations that try to link libz, to
557    handle a statically linked libpng.
558    https://rt.cpan.org/Ticket/Display.html?id=74043
559
560  - if a probe includes testcode, Imager::Probe now checks that code as
561    part of the process of checking each configuration rather than as a
562    post test of the found configuration.  This allows alternate
563    configurations to be checked if a matching but non-working
564    configuration is found.
565    https://rt.cpan.org/Ticket/Display.html?id=74043
566
567 Other changes:
568
569  - when reading or writing images via callbacks, the default callbacks
570    now push an error message indicating that a required callback was
571    called but not supplied.
572    https://rt.cpan.org/Ticket/Display.html?id=76782
573
574  - clarify which callbacks are required for reading and writing TIFF
575    images.
576
577  - improve logging for creation of callback I/O layers.
578
579  - a little more documentation for Imager::Probe.
580
581  - the i_get_file_background() and i_get_file_backgroundf() APIs now
582    return int to indicate whether the i_background tag was found.
583
584  - PNG rework
585    - improve error reporting
586    - add png_interlace, png_bits tags
587    - read paletted images as paletted images, including transparency
588    - read 1 bit greyscale images as a type suitable for other file
589      handlers to write as bilevel
590    - read 16 bit/sample PNG as 16-bit/sample Imager images
591    - write "bilevel" paletted images as 1 bit grayscale images
592    - write paletted images as paletted images
593    - write 16-bit (or higher)/sample images as 16-bit/sample PNG
594      images
595    - improved metadata support
596    https://rt.cpan.org/Ticket/Display.html?id=29268
597
598 Imager 0.89 - 18 Mar 2012
599 ===========
600
601 Bug fixes:
602
603  - getpixel(..., type => "float") and the API i_gpixf() have been
604    broken on paletted images since they were implemented.
605    https://rt.cpan.org/Ticket/Display.html?id=75258
606
607 Other changes:
608
609  - links in the METHOD INDEX now point at the method documentation
610    rather than the heading you can find them under.
611    https://rt.cpan.org/Ticket/Display.html?id=71495
612
613  - Imager (and the bundled dynamic modules) no longer fallback to
614    using DynaLoader if loading via XSLoader fails.
615    For the bundled modules this could hide useful error messages.
616    https://rt.cpan.org/Ticket/Display.html?id=75560
617
618  - IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
619    buffer in the array of allocations, but just stores the filename
620    pointer and line number.
621    https://rt.cpan.org/Ticket/Display.html?id=70388
622
623 Imager 0.88 - 22 Feb 2012
624 ===========
625
626  - describe how to build libgif etc on OS X in such a way as to be
627    compatible with a fat binary perl (such as the system perl), in
628    README.
629    https://rt.cpan.org/Ticket/Display.html?id=73371
630
631  - update the change notes for 0.77_01 to indicate that libungif
632    support was removed.
633
634  - add some other imaging modules to SEE ALSO
635    https://rt.cpan.org/Ticket/Display.html?id=73906
636
637  - note that the generator of the apparently non-DFSG-free postscript
638    in MMOne.pfb is a Debian package.
639
640  - setsamples() is now a true complement to getsamples() - it can
641    write 8-bit or floating point samples from a scalar or array
642    reference.  This adds i_psamp() and i_psampf() to the C level API.
643
644  - the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
645    changed to make better use of the typemap, but these aren't part of
646    the perl level API anyway.  There were no changes to the C level
647    interfaces to these functions.
648
649  - getpixel() and setpixel() now accept a mix of scalar and array
650    references for the x and y parameters, and unequal array lengths is
651    no longer an error.
652    https://rt.cpan.org/Ticket/Display.html?id=73697
653
654 Bug fixes:
655
656  - correctly calculate the size of a rotated image
657    https://rt.cpan.org/Ticket/Display.html?id=69261
658
659  - fix incorrect rounding of color values for matrix_transform() and
660    rotate().
661    https://rt.cpan.org/Ticket/Display.html?id=69261
662
663  - Win32 text output is now done in normal combine mode, the alpha
664    component of the color is now significant.
665    https://rt.cpan.org/Ticket/Display.html?id=70014
666
667  - remove long unused gif case from read()
668    https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
669
670  - the getsamples() target parameter was being treated as a hashref
671    when it's meant to be an array reference.
672    https://rt.cpan.org/Ticket/Display.html?id=74882
673
674  - getpixel() and setpixel() now returns an empty list when invalid
675    parameters are supplied.
676    Invalid values for type now result in an error for getpixel().
677    https://rt.cpan.org/Ticket/Display.html?id=73697
678
679 Imager 0.87 - 03 Jan 2012
680 ===========
681
682  - document the return value of the filter() method.
683    https://rt.cpan.org/Ticket/Display.html?id=72369
684
685  - document i_gsamp_bits() and i_psamp_bits().
686    https://rt.cpan.org/Ticket/Display.html?id=68815
687
688  - properly increment the Imager::Matrix2d $VERSION.
689
690  - actually include the Imager::Test tests in the dist
691
692  - correctly read and write 256x256 pixel ICO files
693    https://rt.cpan.org/Ticket/Display.html?id=69599
694
695  - make the error message from read() or read_multi() when they can't
696    identify the file type match reality.
697    https://rt.cpan.org/Ticket/Display.html?id=72475
698
699  - read() now uses $FORMATGUESS if it can't determine the file type
700    based on the file header, to match read_multi().
701
702  - re-work and add tests for def_guess_type().  def_guess_type() no
703    longer returns any random file extension as the file type.
704
705  - add gray4, gray16 and gray as presets for make_colors.
706    https://rt.cpan.org/Ticket/Display.html?id=67911
707
708  - add make_palette() method that produces a palette from one or more
709    images.
710
711  - fix the Imager dependency for the separately distributed font
712    drivers.
713    https://rt.cpan.org/Ticket/Display.html?id=72643
714
715  - fix i_render_color() to properly draw in "normal" mode - ie. when
716    writing to a 1 or 3 channel image the second or fourth channel of
717    the source color was being ignored, it is now significant.
718    https://rt.cpan.org/Ticket/Display.html?id=71564
719
720 Imager 0.86 - 31 Oct 2011
721 ===========
722
723  - improve error reporting for W32 tests
724
725 Imager 0.85_02 - 24 Oct 2011
726 ==============
727
728 Bug fixes:
729
730  - eliminate unused i_gif_opts type (clean-up)
731    https://rt.cpan.org/Ticket/Display.html?id=69245
732
733  - fix combine=0 fill color anti-aliasing on the double/sample path
734    https://rt.cpan.org/Ticket/Display.html?id=71309
735
736  - make default text color non-transparent
737    https://rt.cpan.org/Ticket/Display.html?id=71469
738
739  - apply the last of the Debian unforwarded spelling fixes
740    https://rt.cpan.org/Ticket/Display.html?id=70656
741
742  - the log() method used its message parameter as a C level format
743    string.
744    https://rt.cpan.org/Ticket/Display.html?id=71653
745
746  - provide our own STRLEN typemap entry for older perls.
747    https://rt.cpan.org/Ticket/Display.html?id=71641
748
749  - add extra ppport.h configuration to support older perls.
750
751  - depend on Scalar::Util, since we use it and older perls don't have
752    it.
753
754  - add overloaded eq to Imager::Matrix2d, since older perls don't seem
755    to synthesize it from overloaded "".
756
757   - use T1_StrError() for error messages on modern libt1
758     https://rt.cpan.org/Ticket/Display.html?id=69879
759
760  - actually load the font rather than just adding it to the catalog on
761    creation.
762
763  - Imager::Font->new now produces better error messages for the T1
764    engine.
765
766  - the font has_chars() method now returns perl's true and false
767    values in list context rather than integers, which should be more
768    efficient.
769    https://rt.cpan.org/Ticket/Display.html?id=69158
770
771  - the btm data structure used by the flood_fill code is now
772    initialized more efficiently.
773    https://rt.cpan.org/Ticket/Display.html?id=68994
774
775  - updated the Thanks list in README
776    https://rt.cpan.org/Ticket/Display.html?id=71607
777
778  - check there's at least one coefficient for the convolution filter
779    https://rt.cpan.org/Ticket/Display.html?id=68993
780
781  - make the APIRef synopsis ordering consistent, older versions of
782    perl could order it differently.
783    https://rt.cpan.org/Ticket/Display.html?id=71675
784
785  - we rely on Config.pm's d_vsnprintf as to whether we use
786    vsnprintf/snprintf, which is defined in the Win32 Config.pm even
787    though it only has _ prefixed versions of these.  Define our own
788    prefixed names on Win32.
789    https://rt.cpan.org/Ticket/Display.html?id=71642
790
791  - fix library detection with MSVC
792
793  - search a few more library directories, so EU::MM doesn't discard
794    them.  Hopefully fixes:
795    https://rt.cpan.org/Ticket/Display.html?id=71643
796
797 Imager 0.85_01 - 10 Oct 2011
798 ==============
799
800  - add simple tests for the Imager::Test test_image generators
801
802  - io_glue I/O buffering re-work:
803
804    - reorganize io_glue to do it's own buffering by default
805
806    - the unbuffered functions are available as i_io_raw_read() (or
807      raw_read() from perl) etc but are not recommended for typical
808      use.
809
810    - use the new i_io_peekn() when checking for file magic to avoid
811      seek, allowing Imager to detect the file type and read the file
812      from an unseekable stream (for formats that don't use random
813      access)
814
815    - added several new I/O layer API functions.
816
817    - fix the TGA performance problem, most noticably on Win32
818      https://rt.cpan.org/Ticket/Display.html?id=70037
819
820    - TIFF now uses wrapper functions of the correct types to avoid casts
821      https://rt.cpan.org/Ticket/Display.html?id=69912
822
823    - the callback IO object did its own buffering, controlled by the
824      maxbuffer parameter supplied to the read() and write() methods.
825      This buffering has been removed, to avoid redundancy with the
826      common io_glue buffering.  This also avoids a bug in that code
827      which could rarely pass a zero length to the read callback and
828      then panic about the result.
829
830    - the callback IO object now tests the result of calling the close
831      callback, which should return true for success.
832
833    - the PNM reader did its own buffering.  This buffering has been
834      removed to avoid redundancy with the common io_glue buffering.
835
836    - previously the read handlers for fd and callback I/O layers would
837      call the underlying interface (POSIX read or your supplied callback)
838      until it filled the buffer.  It now only makes one call.
839
840    - added public constructors for I/O layer objects (see Imager::IO)
841
842    - all core file handlers now use the i_io_foo() wrappers to gain
843      access to buffered I/O rather than calling the I/O layer
844      callbacks directly.
845
846    - all core file handlers now check for error on close.
847
848    - Backward compatibility: if you hava custom file handlers, you can
849      use i_io_write() etc since they're available as macros in older
850      versions of Imager.
851
852    - eliminate the final remnants of io_glue_commit_types().
853
854    - bump IMAGER_API_VERSION, since the above may break assumptions.
855
856  - removed the long unused i_gen_reader() and i_gen_writer() utility
857    functions.
858
859 Imager 0.85 - 29 Aug 2011
860 ===========
861
862 The main changes in the release versus 0.84 are:
863
864  - on 64-bit systems, 64-bit types are consistently used for image
865    dimensions and co-ordinated, and for memory block sizes.
866
867  - handle IFD loops in TIFF files correctly.  Previously this would
868    lead to an infinite loop.
869
870 Bug fixes:
871
872  - fix the link in the getheight() entry in the method index
873
874 Imager 0.84_02 - 22 Aug 2011
875 ==============
876
877 Development release, this will become 0.85 if CPAN testers is
878 favourable.
879
880 Bug fixes:
881
882  - the image file limits set by set_file_limits() weren't being
883    checked when reading TIFF files.
884    https://rt.cpan.org/Ticket/Display.html?id=69915
885
886  - Provide more information about file format module load errors on a
887    failed image file read() or write().
888    https://rt.cpan.org/Ticket/Display.html?id=69194
889
890  - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
891    through TIFF images, since it checks for IFD loops.
892    https://rt.cpan.org/Ticket/Display.html?id=69914
893
894  - don't leak memory when out of range palette indexes are supplied to
895    setscanline().
896    https://rt.cpan.org/Ticket/Display.html?id=69242
897
898  - require a later version of CPAN::Meta to ensure JSON::PP and
899    CPAN::Meta::YAML are available.
900    https://rt.cpan.org/Ticket/Display.html?id=69008
901
902  - hoist the per-line calculations for the flines implementations, and
903    modernize the tests a bit.
904    https://rt.cpan.org/Ticket/Display.html?id=70126
905
906  - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
907    them when available.
908    https://rt.cpan.org/Ticket/Display.html?id=69147
909
910  - if t1lib failed to reinitialize it would be left as marked
911    initialized.
912    https://rt.cpan.org/Ticket/Display.html?id=69877
913
914  - update the bundled (and still modified) Devel::CheckLib
915    https://rt.cpan.org/Ticket/Display.html?id=69170
916
917 Imager 0.84_01 - 8 Aug 2011
918 ==============
919
920 Development release as a sanity check for the types re-work.
921
922 Massive types re-work:
923
924  - the type used internally for pixel co-ordinates and image sizes is
925    now 64-bit on 64-bit platforms (at least sane ones).
926
927  - size_t is now used consistently for memory block sizes.
928
929  - since this changes the binary interface, the Imager API version has
930    been incremented.  Any module that uses the API will need to be
931    rebuilt.  In most cases that will be enough, but calls to any APIs
932    that take a pointer to image sizes may need source changes.
933
934  - you should be able to create very large images on 64-bit systems,
935    if you have enough memory.  Successfully created a 32768 x 49192 x
936    3 channel image, filled with a tiled image and scaled it.  The
937    unscaled image was also successfully saved to a JPEG.
938
939  - check the image size before attempting to write BMP, GIF, JPEG,
940    PNG, SGI, TGA, TIFF images.
941
942  - correctly handle reading TGA images over 32767 pixels wide or tall.
943
944 Incidental changes:
945
946  - the gif_left and gif_top tags are now clamped to non-negative
947    values when writing a GIF image.
948
949  - removed dead callback read/write code
950
951 The default maximum memory size when reading files is now 1G.
952
953 Imager 0.84 - 20 Jun 2011
954 ===========
955
956  - Imager no longer inherits from Exporter (unless you're running an
957    old, old perl.
958
959  - Imager can now write progressive JPEGs (it could always read them).
960    https://rt.cpan.org/Ticket/Display.html?id=68691
961
962 Bug fixes:
963
964  - re-work, document and test Imager's logging facility.
965    https://rt.cpan.org/Ticket/Display.html?id=65227
966
967  - fix META.yml testing and the generated META.yml
968    https://rt.cpan.org/Ticket/Display.html?id=65235
969
970  - test and add error reporting to to_*() family methods
971
972  - add to_rgb_double() method.
973    https://rt.cpan.org/Ticket/Display.html?id=65101
974
975  - Imager no longer exports anything by default
976    https://rt.cpan.org/Ticket/Display.html?id=65228
977
978  - convert colors to grayscale if the supplied (or generated) palette
979    contains only grays when performing error diffusion color
980    translation.
981    https://rt.cpan.org/Ticket/Display.html?id=68508
982
983  - writing a paletted image to GIF wouldn't always use the colors
984    supplied (or generated, eg. via make_colors => "mono"), which was
985    confusing at best.
986    https://rt.cpan.org/Ticket/Display.html?id=67912
987
988  - replace (imager|tony)@imager.perl.org in the doc, since I don't
989    plan to continue receiving mail at that address.
990    https://rt.cpan.org/Ticket/Display.html?id=68591
991
992 Imager 0.83 - 21 May 2011
993 ===========
994
995 Bug fixes:
996
997  - diag() the error message on failure for some TIFF tests that are
998    failing on a Solaris smoker.
999    http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
1000
1001 Imager 0.82_01 - 17 May 2011
1002 ==============
1003
1004 Dev release, in case the compose tests are too sensitive.
1005
1006 Bug fixes:
1007
1008  - Imager::Font::T1 incorrectly checked for absolute filename under
1009    Win32.  Thanks to kmx for the report and fix.
1010    https://rt.cpan.org/Ticket/Display.html?id=67963
1011
1012  - compose() with the target, source or mask position off the top or
1013    left of the target image didn't clip the source image correctly.
1014    https://rt.cpan.org/Ticket/Display.html?id=67220
1015
1016  - compose() now returns a useful error message on a non-positive
1017    opacity.
1018
1019  - compose.im now at 100% test coverage. (As opposed to, umm, much,
1020    much less.)
1021
1022 Imager 0.82 - 14 Mar 2011
1023 ===========
1024
1025 Bug fixes:
1026
1027  - eliminate calls to i_has_format() from the test suite, since it's
1028    no longer a useful way to check for file format support.  Eliminate
1029    i_has_format() from the functions exposed via XS.
1030    https://rt.cpan.org/Ticket/Display.html?id=65863
1031
1032  - eliminate calls to note(), which isn't in the (very old) version of
1033    Test::More we have as a pre-requisite.  note() is modern enough
1034    that I don't feel a need to require a Test::More upgrade for it.
1035    https://rt.cpan.org/Ticket/Display.html?id=65864
1036
1037  - skip the threads tests on Test::More 2.00_*
1038    https://rt.cpan.org/Ticket/Display.html?id=65812
1039
1040  - add an (unshipped) test to check Imager's internal POD links
1041    https://rt.cpan.org/Ticket/Display.html?id=65749
1042
1043  - improve the library detection summary
1044    https://rt.cpan.org/Ticket/Display.html?id=9675
1045
1046  - increase the version of Imager::Font::Type1 so that upgrades don't
1047    downgrade the version in this file.
1048    https://rt.cpan.org/Ticket/Display.html?id=66250
1049
1050  - if we see an -rpath (or -R) option in $Config{lddlflags} supply
1051    that option for the directories that would normally go in
1052    LD_RUN_PATH.  Typically an explicit -rpath overrides LD_RUN_PATH.
1053    https://rt.cpan.org/Ticket/Display.html?id=65955
1054
1055 Imager 0.81 - 14 Feb 2011
1056 ===========
1057
1058  - added coverage tests for masked images (maskimg.c @100% test coverage)
1059
1060  - add hsv() method to Imager::Color
1061    Thanks to Leolo (Philip Gwyn)
1062    https://rt.cpan.org/Ticket/Display.html?id=65385
1063
1064  - split libt1 Type 1 font support into a sub-module
1065    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1066
1067  - add a preload() class method for use in forking servers, and to
1068    work around limitations in PAR.
1069    https://rt.cpan.org/Ticket/Display.html?id=65665
1070
1071 Bug fixes:
1072
1073  - paletted writes to a masked image are now masked correctly.
1074    Revealed by new coverage tests.
1075
1076  - update the filter plugin documentation.
1077    https://rt.cpan.org/Ticket/Display.html?id=56513
1078
1079  - add the matrix() method to Imager::Matrix2d to allow creation of a
1080    matrix with specified co-efficients.  You can now multiple an
1081    Imager::Matrix2d object by a 9 element array ref or a number.
1082    https://rt.cpan.org/Ticket/Display.html?id=29938
1083
1084  - really fix loading TTF fonts with FT2 when FT1 isn't available.
1085    Thanks to Leolo (Philip Gwyn)
1086    https://rt.cpan.org/Ticket/Display.html?id=65386
1087    https://rt.cpan.org/Ticket/Display.html?id=62855
1088
1089  - make sure each test script that needs testout/ creates it.
1090    https://rt.cpan.org/Ticket/Display.html?id=65088
1091
1092  - handle a slightly different warning from libtiff 4.x
1093    https://rt.cpan.org/Ticket/Display.html?id=65268
1094
1095  - the sat transform2() op returned an incorrect saturation.
1096    https://rt.cpan.org/Ticket/Display.html?id=65391
1097
1098 Imager 0.80 - 17 Jan 2011
1099 ===========
1100
1101  - added coverage tests for Imager::Fountain and Imager::Color::Float
1102
1103  - Imager is now maintained in git
1104    http://git.imager.perl.org/imager.git
1105    git://git.imager.perl.org/imager.git
1106
1107 Bug fixes:
1108
1109  - images with an translucent alpha channel were not scaled correctly
1110    by the default (qtype=normal) scaling method.
1111    https://rt.cpan.org/Public/Bug/Display.html?id=63922
1112
1113  - Imager::Color::Float now translates "#FFFFFF" to white instead of
1114    just a little darker.
1115
1116  - make the default color map build algorithm "mediancut".  This
1117    changes the default color map builder for writing GIFs back to what
1118    it was in 0.77, reverting a performance regression.
1119    https://rt.cpan.org/Ticket/Display.html?id=64785
1120
1121  - handle failure to create a masked image correctly
1122
1123 Imager 0.79 - 10 Dec 2010
1124 ===========
1125
1126  - add Imager::Test to the POD coverage tests and document the missing
1127    functions.
1128
1129  - the convert() method now optimizes the case where all output
1130    channels are either 0, sourced from a single input channel or 1.
1131    This significantly speeds up presets like "addalpha", "green".
1132    https://rt.cpan.org/Ticket/Display.html?id=51254
1133
1134  - add wiggle.pl sample, as suggested by Dan Oppenheim.
1135
1136  - add the combine() method to combine channels from multiple source
1137    images into a new image
1138    https://rt.cpan.org/Ticket/Display.html?id=11872
1139
1140 Bug fixes:
1141
1142  - treat the co-efficients for convert() as doubles instead of floats.
1143
1144  - If a higher (earlier) priority font handler failed to load, that
1145    would crash preventing loading of later font handlers.
1146    https://rt.cpan.org/Ticket/Display.html?id=62855
1147
1148  - parse defines from the options returned by pkg-config --cflags
1149    https://rt.cpan.org/Ticket/Display.html?id=63223
1150
1151  - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
1152    included in the tarball.  They are now included.
1153
1154 Imager 0.78 - 4 Oct 2010
1155 ===========
1156
1157 Bug fixes:
1158
1159  - don't access deprecated members of the png_structp.
1160    https://rt.cpan.org/Ticket/Display.html?id=60242
1161
1162  - document that using color objects is faster than supplying colors
1163    by name, etc.
1164    https://rt.cpan.org/Ticket/Display.html?id=61047
1165
1166  - Imager::Probe now accepts array references for incpath and libpath.
1167    https://rt.cpan.org/Ticket/Display.html?id=60244
1168
1169 Imager 0.77_02 - 27 Sep 2010
1170 ==============
1171
1172  - moved Win32, FreeType 2 font support into sub-modules.
1173    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1174    Uses Imager::Probe now.
1175    https://rt.cpan.org/Public/Bug/Display.html?id=61328
1176
1177  - tested successfully with jpeg-8b
1178    https://rt.cpan.org/Ticket/Display.html?id=60221
1179
1180 Bug fixes:
1181
1182  - from _01: look for missing file support test files in the right
1183    places.
1184
1185  - flood_fill() wouldn't fill the right side of a single scan-line
1186    fill area.
1187    Thanks to Nicolas Roggli for reporting this.
1188
1189  - flood_fill wouldn't fill to the left edge of the image if the
1190    starting line didn't reach the left edge.
1191    Thanks to Nicolas Roggli for reporting this.
1192
1193 Imager 0.77_01 - 13 Sep 2010
1194 ==============
1195
1196  - add each library-directory/pkgconfig/ to the pkg-config search path
1197    in Imager::Probe.
1198    Thanks to Justin Davis.
1199    https://rt.cpan.org/Ticket/Display.html?id=60491
1200
1201  - moved GIF, TIFF, JPEG file handling code into sub-modules in
1202    preparation for separate distribution.
1203    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1204
1205    Note: this removed support for libungif from Imager.
1206
1207  - optimize filled box drawing (color, not fill)
1208
1209 Bug fixes:
1210
1211  - Imager::Probe was calling ExtUtils::Liblist to initialize
1212    LD_RUN_PATH supplying an undefined value rather than the found
1213    directory.  Thanks to Justin Davis.
1214    https://rt.cpan.org/Ticket/Display.html?id=60491
1215
1216  - only prepend ./ to font filenames when passing them to T1Lib and
1217    then only when it would use its search mechanisms.
1218    https://rt.cpan.org/Ticket/Display.html?id=60509
1219
1220  - fix the cache check for the X rgb.txt loader.  This is typically
1221    used for color translation on Unix-like systems, and the fix
1222    improves performance of supplying colors by name by about 80 times.
1223    Test code that managed 3400 10x10 pixel boxes/second sped up to
1224    25700 boxes/second.
1225
1226  - clarify that Imager doesn't write EXIF metadata to images.
1227    https://rt.cpan.org/Ticket/Display.html?id=60637
1228
1229  - Imager::Probe can now search subdirectories under its include path.
1230    Used by the PNG Makefile.PL to find headers and libraries when they
1231    aren't in the base directory, as in cygwin.
1232    https://rt.cpan.org/Ticket/Display.html?id=60635
1233
1234 Imager 0.77 - 11 Aug 2010
1235 ===========
1236
1237 I don't want Imager::File::PNG indexed as part of Imager, but forgot
1238 to update the META.yml before updating the version.
1239
1240  - don't index Imager::File::PNG as part of Imager
1241
1242  - add resources to META.yml
1243
1244 Imager 0.76 - not released
1245 ===========
1246
1247 Bug fixes:
1248
1249  - the align_string() method would ignore a string of "0" due to a
1250    mis-use of C< ||= >.
1251    Thanks to Maurice Height for reporting this.
1252    https://rt.cpan.org/Ticket/Display.html?id=60199
1253
1254 Imager 0.75_03 - 09 Aug 2010
1255 ==============
1256
1257 Bug fixes:
1258
1259  - read_types() and write_types() would include png when it wasn't
1260    available due to a problem with the %formats tie
1261
1262  - handle dependent libraries correctly (eg -lpng requiring -lz) in
1263    the code run phase of library probing.
1264
1265 Imager 0.75_02 - 07 Aug 2010
1266 ==============
1267
1268 Bug fixes:
1269
1270  - add file missing from MANIFEST, which was causing TIFF failures.
1271
1272 Imager 0.75_01 - 06 Aug 2010
1273 ==============
1274
1275 Test release for the new PNG probe.
1276
1277  - added the ability to read multiple-image PNM files.
1278    Note that unlike the pbm/pgm/ppm specification this accepts mixed
1279    format files and allows white space padding between files.
1280    Thanks to Philip Gwyn (Leolo) for this patch.
1281
1282  - moved the PNG file handling code into a sub-module in preparation
1283    for separate distribution.
1284    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1285    Also helps avoid complications from -I/-L compile/link options from
1286    other libraries.
1287
1288 Bugs:
1289
1290  - Imager->new(data => $data) didn't try to process image file data in
1291    $data
1292    https://rt.cpan.org/Ticket/Display.html?id=58761
1293
1294  - t/t50basicoo.t no longer depends on the other tests to generate its 
1295    input files.
1296    https://rt.cpan.org/Ticket/Display.html?id=9798
1297    Also, it wasn't testing pnm (pnm vs ppm mix-up)
1298
1299  - update the documentation of hardinvert to match the change in 0.62.
1300    https://rt.cpan.org/Ticket/Display.html?id=59785
1301
1302  - added hardinvertall filter which also inverts the alpha channel
1303    (sorry for the mess)
1304
1305  - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
1306    the probe can find the library for the test run.
1307    https://rt.cpan.org/Ticket/Display.html?id=57518
1308
1309 Imager 0.75 - 20 Jun 2010
1310 ===========
1311
1312  - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
1313    perls (not measured)
1314
1315 Bugs:
1316
1317  - an opacity fill based on a fountain fill would segfault when
1318    filling an 8-bit/sample image.
1319
1320  - merge thickline branch polygon fix
1321    https://rt.cpan.org/Ticket/Display.html?id=43518
1322
1323 Imager 0.74 - 7 May 2010
1324 ===========
1325
1326 Bug fixes:
1327
1328  - read_multi() didn't handle a missing file format library correctly,
1329    aborting on failing to call i_readgif_multi_wiol() or
1330    i_readtiff_multi_wiol().
1331
1332  - fix spelling errors patched by Debian
1333    http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
1334
1335  - add an (unshipped) author test to spellcheck Imager's POD.
1336
1337  - update the TIFF file format documentation
1338    https://rt.cpan.org/Ticket/Display.html?id=56510
1339
1340  - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
1341
1342 Imager 0.73 - 15 Mar 2010
1343 ===========
1344
1345  - implement outline circles, both anti-aliased and not
1346    https://rt.cpan.org/Ticket/Display.html?id=19755
1347
1348  - a combine => "none" fill to a 1 or 3 channel image would produce
1349    the incorrect colour.
1350
1351 Imager 0.72 - 09 Dec 2009
1352 ===========
1353
1354 Bump version for release, since 0.71_03 is stable with CPAN testers.
1355
1356 Imager 0.71_03 - 5 Dec 2009
1357 ==============
1358
1359  - further adjust the threads test so it only performs the tests on
1360    perls where it's expected to work, and only if the threads module
1361    can be loaded.
1362
1363 Imager 0.71_02 - 1 Dec 2009
1364 ==============
1365
1366  - adjust the way we load the threads module for the threads test so
1367    it works with non-threaded perls
1368
1369 Imager 0.71_01 - 30 Nov 2009
1370 ===========
1371
1372 Bug fixes:
1373
1374  - use scanline oriented operations to flip images instead of pixel
1375    operations
1376    https://rt.cpan.org/Ticket/Display.html?id=39278
1377
1378  - use double/sample operations to flip large sample images instead of
1379    8-bit sample operations.
1380    https://rt.cpan.org/Ticket/Display.html?id=39280
1381
1382  - fix POD nits
1383    https://rt.cpan.org/Ticket/Display.html?id=51874
1384
1385  - prevent double-frees when someone creates Imager objects and then
1386    creates a thread.  Note: this just handles some simple cases,
1387    Imager doesn't support perl threads, and isn't likely to.
1388    https://rt.cpan.org/Ticket/Display.html?id=52268
1389
1390 Imager 0.71 - 16 Nov 2009
1391 ===========
1392
1393  - add the opacity fill type - an adaptor that modifies the opacity of
1394    another fill.
1395
1396 Bug fixes:
1397
1398  - the conv filter now enforces that the sum of the coefficients is
1399    non-zero.  Also, rather than skipping pixels off the edge off the
1400    edge of the image, the closest edge pixel is used.  Previously
1401    dividing by the zero sum of coefficients could cause invalid
1402    results or runtime exceptions.
1403    Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
1404    this bug.
1405
1406 Imager 0.70 - 21 Sep 2009
1407 ===========
1408
1409 Bug fixes:
1410
1411  - release image row and comments memory on all error returns in gif
1412    reader
1413
1414  - handle zero length extensions, previously this would cause a null
1415    pointer dereference
1416    Thanks to Krzysztof Wojtaś for the test data and fix for this.
1417
1418  - an integer division meant that preview scaling to below 1 pixel
1419    wide or high (which isn't too useful anyway) was calculating using
1420    NaNs on most platforms, and causing an exception on others.
1421    Thanks to David Cantrell for producing a backtrace of the crash on
1422    his Alpha-NetBSD CPAN test box which made it possible to track this
1423    down.
1424
1425 Imager 0.69 - 08 Sep 2009
1426 ===========
1427
1428 Bug fixes:
1429
1430  - broken test fix - was attempting to call a function skip_all, when
1431    that should be a parameter to plan().
1432
1433  - briefly document apidocs.perl, the tool used to build
1434    Imager::APIRef and make some minor enhancements
1435
1436  - various minor documentation enhancements and fixes.
1437
1438 Imager 0.68 - 07 Sep 2009
1439 ===========
1440
1441  - Imager->new(file => $filename) and other similar incantations will
1442    load the given file.
1443    https://rt.cpan.org/Ticket/Display.html?id=48261
1444
1445 Bug fixes:
1446
1447  - avoid using CHECK as a label in Imager::Test
1448    http://nntp.x.perl.org/group/perl.cpan.testers/5220921
1449
1450  - re-work most image file test files that require a library into
1451    separate library present/not present files to remove stupidly long
1452    conditionals
1453
1454  - don't treat rubthrough() outside the bounds of the target image as
1455    an error.
1456    http://nntp.x.perl.org/group/perl.cpan.testers/5185716
1457
1458 Imager 0.67_01 - 02 Sep 2009
1459 ==============
1460
1461 Bug fixes:
1462
1463  - correct documentation of default of raw image interleave read
1464    parameter
1465    https://rt.cpan.org/Ticket/Display.html?id=42074
1466
1467  - add raw_ prefix to raw read parameters, though the original names
1468    still work.
1469
1470  - fail the read if an invalid raw_interleave parameter is supplied
1471
1472  - warn if no interleave or raw_interleave parameter is supplied,
1473    since the documented default was wrong, and incompatible with the
1474    write format
1475
1476  - for reading raw images, if raw_storechannels > raw_datachannels,
1477    set the extra channels in the image to 0
1478
1479  - when probing for executables like freetype-config, search for .bat
1480    and .cmd on MSWin32, as well as .exe.
1481    https://rt.cpan.org/Ticket/Display.html?id=49275
1482
1483  - re-work the external libraries section of README:
1484    - list Debian and Redhat package names for each library
1485    - reformatting
1486    - update URLs
1487
1488  - use the new EU::MM META_MERGE facility instead of generating
1489    META.yml from scratch
1490    https://rt.cpan.org/Ticket/Display.html?id=47888
1491
1492  - use Devel::CheckLib (bundled, modified) to check which release of
1493    libtiff is installed and reject 3.9.0
1494    http://bugzilla.maptools.org/show_bug.cgi?id=2088
1495    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
1496
1497 Imager 0.67 - 12 Dec 2008
1498 ===========
1499
1500 Bug fixes:
1501
1502  - fix a packaging error
1503
1504 Imager 0.66 - 12 Dec 2008
1505 ===========
1506
1507  - 24-bit color .ICO/.CUR files can now be read.
1508
1509 Bug fixes:
1510
1511  - an optimization skipping 0 src alpha values could cause the
1512    rubthrough() to read past the end of a buffer.
1513    http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
1514
1515  - corrected a reference leak where writing GIFs would leak memory.
1516    This could also happen calling to_paletted().
1517    Also documented the underlying long existing feature where the
1518    colors parameter is filled with the generated color table and added
1519    tests for it.
1520    http://rt.cpan.org/Ticket/Display.html?id=41028
1521
1522  - write out the image size in bytes field of a BMP correctly.
1523    http://rt.cpan.org/Ticket/Display.html?id=41406
1524
1525  - add limited tests for Imager::ExtUtils
1526
1527  - make Imager::ExtUtils->includes use an absolute path, since
1528    a relative path could cause failures using Inline::C.
1529    http://rt.cpan.org/Ticket/Display.html?id=37353
1530
1531  - re-arrange the POD for Imager::Font::BBox:
1532    - mark total_width(), pos_width(), end_offset() obsolete, since
1533      they're mostly for backwards compatibility
1534    - group width methods and height methods
1535    https://rt.cpan.org/Ticket/Display.html?id=39999
1536
1537 Imager 0.65 - 20 May 2008
1538 ===========
1539
1540 Bug fixes:
1541
1542  - In some cases when an error occurs reading those parts of a JPEG
1543    file after the image the scan-line buffer could be freed a second
1544    time.  In cases where the the error occured while reading the image
1545    data it's possible that the buffer could have leaked.
1546    Thanks to Gabriel Vasseur for reporting this and help in tracking
1547    it down.
1548
1549  - the gif_screen_height tag was overriding the screen width and being
1550    ignored for the screen height when present.
1551    https://rt.cpan.org/Public/Bug/Display.html?id=35568
1552
1553 Imager 0.64 - 23 April 2008
1554 ===========
1555
1556 This is a bug fix release.  This includes a fix for a possible
1557 security issue.
1558
1559 Bug fixes:
1560
1561  - Possible security issue: The floating point sample path for image
1562    based fills had a buffer overflow.  This would overwrite the end of
1563    a malloc()ed buffer with double precision floats.
1564    http://rt.cpan.org/Ticket/Display.html?id=35324
1565    CVE-2008-1928
1566
1567  - check that the result of fileno($fh) is defined rather than simply
1568    true when read() or write() is supplied with an fh parameter.
1569    http://rt.cpan.org/Ticket/Display.html?id=35139
1570
1571  - i_scale_axis() wasn't checking the result of i_img_new_ch()
1572    resulting in a SIGSEGV when attempting to scale an image to a size
1573    too large to fit in memory.  This is a NULL pointer access issue,
1574    not a buffer overflow.
1575    Added a check for the failure.
1576    scale_calculate() (and hence scale()) will now fail if any of the
1577    scale size parameters are a reference.
1578    http://rt.cpan.org/Ticket/Display.html?id=35172
1579
1580  - Regression: filling a greyscale image with a hatch used the wrong
1581    color channels from the supplied fg/bg colors.
1582    https://rt.cpan.org/Ticket/Display.html?id=35278
1583
1584  - fixed a related problem for image fills.
1585
1586 Imager 0.63 - 7 April 2008
1587 ===========
1588
1589 This release primarily contains changes to improve ease of use -
1590 rather than you having to convert images to the appropriate number of
1591 channels, Imager handles it internally.  How to handle drawing colors
1592 and the default combine mode is a thornier problem left for some other
1593 release.
1594
1595  - the font libraries are now only initialized when needed.
1596    http://rt.cpan.org/Ticket/Display.html?id=28825
1597
1598  - moved the imtoc.perl code into Imager::Preprocess
1599
1600  - paste() and rubthrough() now adapt the source image data to the
1601    destination, so you can now safely paste/rubthrough from greyscale
1602    images to color images or back, or from alpha channel images to
1603    noalpha channels or back.
1604    https://rt.cpan.org/Ticket/Display.html?id=30908
1605
1606  - rubthrough() now falls back to pasting when the source doesn't have
1607    an alpha channel.  This effectively treats the source as having a
1608    max alpha channel, the right thing to do.
1609    http://rt.cpan.org/Ticket/Display.html?id=29944
1610
1611  - re-worked most of the area filling code to use a common set of
1612    functions when filling.
1613    Corrected normal combine mode.
1614    Rewrote most of the combine modes to match the way the SVG draft
1615    defines them with respect to a translucent source and destination.
1616    Added tests for translucent source and destination.
1617    Added tests to check 8-bit/sample and double/sample combines work
1618    similarly.
1619    https://rt.cpan.org/Ticket/Display.html?id=29879
1620
1621  - writing a 2 or 4 channel image to a JPEG file will now write that
1622    image as if composited against a background, black by default,
1623    overridable with the i_background tag/parameter.
1624    https://rt.cpan.org/Ticket/Display.html?id=29876
1625
1626  - writing a 2 or 4 channel image to a PGM/PPM file will now write
1627    that image as if composited against a background, black by default,
1628    overridable with the i_background tag/parameter.
1629    http://rt.cpan.org/Ticket/Display.html?id=30074
1630
1631  - writing a 2 or 4 channel image to a BMP file will now write that
1632    image as if composited against a background, black by default,
1633    overridable with the i_background tag/parameter.
1634    http://rt.cpan.org/Ticket/Display.html?id=30075
1635
1636 Bug fixes:
1637
1638  - Imager::Matrix2d->translate() now only requires one of the x or y
1639    parameters.
1640    http://rt.cpan.org/Ticket/Display.html?id=29937
1641
1642  - mixing qtype scaling now sets all channels of a pixel to zero if
1643    the pixel has zero coverage (zero alpha).  This should produce more
1644    compressible output files.
1645    http://rt.cpan.org/Ticket/Display.html?id=32324
1646
1647  - removed the pointless #! line from lib/Imager/Font/Wrap.pm
1648    Noticed when I saw:
1649    https://bugzilla.redhat.com/show_bug.cgi?id=166254
1650    I'm not changing the #! lines of the sample code, since it's sample
1651    code, not intended for installation.
1652    http://rt.cpan.org/Ticket/Display.html?id=33408
1653
1654  - some TGA images weren't being detected correctly as TGA images
1655    https://rt.cpan.org/Ticket/Display.html?id=32925
1656
1657  - handling of the left-over bit for 16-bit/pixel TGA images has been
1658    changed to match the behaviour of the GIMP.  Previously the bit
1659    being set was treated as an opaque pixel, but one user reported a
1660    problem with loading such an image.  I haven't been able to find any
1661    tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
1662    I'll match it's behaviour.  See issue 114913 in the GIMP's
1663    bugzilla.
1664    http://rt.cpan.org/Ticket/Display.html?id=32926
1665
1666 Imager 0.62 - 10 December 2007
1667 ===========
1668
1669  - Makefile.PL now expands ~/path supplied to --incpath or --libpath
1670    to /path under your home directory.
1671    http://rt.cpan.org/Ticket/Display.html?id=29484
1672
1673  - the old dynaload code used Mach API functions to load dynamic
1674    libraries on Mac OS X.  These APIs have been deprecated in OS X
1675    10.5 and were causing some build problems.
1676    So henceforth Imager uses the dlopen() family of functions, and you 
1677    will need version 10.3 or later of OS X.
1678
1679  - added the det() function to the transform2() engine.
1680    added the sample quad_to_square.pl
1681    Courtesy Richard Fairhurst.
1682    http://rt.cpan.org/Ticket/Display.html?id=31244
1683
1684 Bug fixes:
1685
1686  - samples/gifscale.pl sourced the base value for gif_top from
1687    gif_left.
1688    Thanks to Eleneldil G. Arilou for pointing this out.
1689
1690  - t/t82inline.t no longer loads B at runtime, to work around a bug
1691    in some 5.005_0[45] installations.
1692    http://rt.cpan.org/Ticket/Display.html?id=30508
1693
1694  - work around Module::Depends::Intrusive bug #21229
1695    http://rt.cpan.org/Ticket/Display.html?id=30520
1696
1697  - the hardinvert filter no-longer inverts the alpha channel.
1698    http://rt.cpan.org/Ticket/Display.html?id=30002
1699
1700  - the hardinvert filter now supports large samples
1701
1702 Imager 0.61_02 - 28 November 2007
1703 ==============
1704
1705  - major TIFF support re-work
1706    http://rt.cpan.org/Ticket/Display.html?id=20329
1707
1708  - added a C level image interface for accessing samples from 1-32
1709    bits, exposed this at the perl level in getsamples()
1710
1711  - the conv filter now works at floating point precision for high bit
1712    images
1713
1714  - added is_bilevel method to test whether an image should be written as
1715    a bilevel image if the image format supports it.
1716
1717  - added -log-stderr as an Imager import list option
1718
1719  - added some important types to Imager::APIRef
1720
1721  - added test_image_double() to Imager::Test
1722
1723 Bug fixes:
1724
1725  - Imager::Fountain couldn't read GIMP gradient files with 10 or more
1726    segments
1727
1728  - the scale() method with qtype mixing now handles images with an
1729    alpha channel correctly.
1730
1731  - fixed a broken link from the "animated GIF" entry in the concept index.
1732    Thanks to Slaven Rezic.
1733    http://rt.cpan.org/Ticket/Display.html?id=30889
1734
1735  - on some perl's the infix expression parser test would fail due to
1736    actions in the grammar returning false.  Made sure all actions return
1737    a true value.
1738    Thanks to Richard Fairhurst for spending a lot of time in tracking
1739    down this problem.
1740    http://rt.cpan.org/Public/Bug/Display.html?id=29562
1741
1742 Imager 0.61 - 5 November 2007
1743 ===========
1744
1745  - added samples/gifscale.pl, which adjusts the screen size/position tags
1746    when scaling an animated gif
1747    http://rt.cpan.org/Ticket/Display.html?id=27591
1748
1749 Bug fixes:
1750
1751  - correct handling of sz in matrix_transform() - this should allow
1752    perspective type transformations to work now.
1753    http://rt.cpan.org/Ticket/Display.html?id=29936
1754
1755  - prevent a cast to integer warning on x64 builds in datatypes.c
1756    also fixed some other type warnings
1757    https://rt.cpan.org/Ticket/Display.html?id=30204
1758
1759  - some sub-directory tests depended on files produced by the parent
1760    directory tests
1761    http://rt.cpan.org/Ticket/Display.html?id=30203
1762
1763  - Imager::Font::Wrap doesn't correctly set savepos
1764    thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
1765    http://rt.cpan.org/Ticket/Display.html?id=29771
1766
1767  - test 171 in t/t01introvert.t was failing on perls configured to
1768    use long double.
1769    http://rt.cpan.org/Ticket/Display.html?id=29413
1770
1771  - the code for the transform2() uminus operator was missing a break.
1772    Added tests for better code coverage of the ops.
1773    http://rt.cpan.org/Ticket/Display.html?id=29296
1774
1775  - the SGI RLE compression code could overflow its compression buffer
1776    http://rt.cpan.org/Ticket/Display.html?id=30334
1777
1778  - the 32-bit output function used by the SGI code only handled values
1779    under 0x10000.  This was most noticable when writing large RLE images.
1780    http://rt.cpan.org/Ticket/Display.html?id=30335
1781
1782  - validate chan_count for chans == NULL for each of the i_gsamp()
1783    implementations.
1784    http://rt.cpan.org/Ticket/Display.html?id=28985
1785
1786  - attempt to work around the test failure at 
1787    http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
1788    http://rt.cpan.org/Ticket/Display.html?id=29562
1789
1790  - improve the error messages produced when attempting to read or write
1791    an unknown image file format.
1792    http://rt.cpan.org/Ticket/Display.html?id=30103
1793
1794  - improve the transform2() documentation
1795    http://rt.cpan.org/Ticket/Display.html?id=29267
1796
1797  - correctly generate the author key in META.yml
1798    http://rt.cpan.org/Ticket/Display.html?id=30377
1799
1800  - correctly blend a rotated (or matrix_transformed()) image when
1801    performing interpolation in the presence of an alpha channel.
1802    Also corrected the centring of the rotated image on the output
1803    image.
1804
1805 Imager 0.60 - 30 August 2007
1806 ===========
1807
1808  - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
1809    now has full SGI RGB image format, including RLE and 16-bit/sample
1810    images.
1811    https://rt.cpan.org/Ticket/Display.html?id=8666
1812
1813  - logging functions are now available in the API
1814
1815  - applied Gabriel Vasseur's patch
1816    added documentation, further tests, and support for greyscale images
1817    Obviously problems are my fault :)
1818    https://rt.cpan.org/Ticket/Display.html?id=28142
1819
1820  - the mask for ICO/CUR images is now applied as an alpha channel to
1821    the returned image.  For the old behaviour, supply ico_masked => 0
1822    to read() or read_multi().  This should be less confusing when
1823    using Imager as a general image processor.
1824    https://rt.cpan.org/Ticket/Display.html?id=29001
1825
1826 Bug fixes:
1827
1828  - in some cases it's possible for giflib/libungif to return color 
1829    indexes outside the range of colors defined by the image's palette.
1830    We now expand the palette to match the indexes used.
1831    Thanks to Gabriel Vasseur for reporting this.
1832
1833  - fixed various memory leaks that could occur when failing to read png,
1834    jpeg, bmp or tga files.
1835
1836  - to avoid confusion, channels not present in the image are returned as
1837    zero by getscanline().  This has no effect on the C level i_glin()
1838    and i_glinf() API functions which continue to not set the unused
1839    channels.
1840
1841  - the convert() method now returns an image of the same sample size as
1842    the source image.
1843    https://rt.cpan.org/Ticket/Display.html?id=28492
1844
1845  - remove repeated text in Imager::Files
1846    http://rt.cpan.org/Ticket/Display.html?id=27589
1847
1848  - be even more explicit that scale() and friends don't modify the source
1849    image, but return a new image.
1850    http://rt.cpan.org/Ticket/Display.html?id=28570
1851
1852  - improve the error message from errstr() when you try to load a font
1853    for which the driver hasn't been built in Imager.
1854    http://rt.cpan.org/Ticket/Display.html?id=27571
1855
1856  - transparency is now enabled by default when writing GIF images
1857    http://rt.cpan.org/Ticket/Display.html?id=27615
1858
1859  - Imager would not load on Windows 98
1860    http://rt.cpan.org/Ticket/Display.html?id=27653
1861
1862 Imager 0.59 - 14 June 2007
1863 ===========
1864
1865 Bug fixes:
1866
1867  - fixes a regression introduced by the fixes for RT 11972
1868    http://rt.cpan.org/Ticket/Display.html?id=27546
1869
1870  - cropping outside the image would return an Imager object with
1871    no low-level image object, instead of returning false.
1872    Fixed by: Philip Gwyn (Leolo)
1873    http://rt.cpan.org/Ticket/Display.html?id=27509
1874
1875 Imager 0.58 - 16 May 2007
1876 ===========
1877
1878 No significant changes from 0.57_01.
1879
1880 Imager 0.57_01 - 11 May 2007
1881 ==============
1882
1883  - added to_rgb16 to produce a 16-bit/sample version of an image
1884
1885  - improve freetype 1.x text output efficiency
1886
1887 Bug fixes:
1888
1889  - search another place for rgb.txt, and check all the places 
1890    Imager::Color checks when deciding whether to skip testing it
1891    http://rt.cpan.org/Ticket/Display.html?id=26064
1892
1893  - use a convolution kernel size based on the stddev rather than a
1894    fixed size when performing a gaussian blur
1895    http://rt.cpan.org/Ticket/Display.html?id=25645
1896
1897  - document the difference() method's mindist parameter, and debug it.
1898
1899  - put the Imager release number in the Inline::C generated code to
1900    regenerate Inline code when a new release of Imager is installed.
1901    http://rt.cpan.org/Ticket/Display.html?id=26278
1902
1903  - fix rendering on alpha channel images for the FreeType 1.x driver.
1904    http://rt.cpan.org/Ticket/Display.html?id=11972
1905
1906  - fix rendering on alpha channel images for the T1lib driver.
1907    http://rt.cpan.org/Ticket/Display.html?id=11972
1908
1909  - reworked library probing, we can now set more than one probe
1910    function for a library.  Disabled the default (non-freetype-config)
1911    library probe and added an extra probe function that searches for
1912    both ft2build.h and whatever it includes, and adds -I as needed.
1913    Hopefully this will fix build problems like
1914    http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
1915    http://rt.cpan.org/Ticket/Display.html?id=26086
1916
1917 Imager 0.57 - 30 Apr 2007
1918 ===========
1919
1920 This is a maintenence release fixing a security issue in Imager.
1921
1922  - CRITICAL: a specially crafted compressed BMP file can cause a buffer
1923    overflow in malloced memory.  There will be further discussion of
1924    this issue in the ticket below.
1925    http://rt.cpan.org/Ticket/Display.html?id=26811
1926    CVE-2007-2459  CVE-2007-2413
1927    The descriptions at cve.mitre.org varied in quality, please see the
1928    ticket at rt.cpan.org for a more accurate description of the issue.
1929
1930 Imager 0.56 - 1 Apr 2007
1931 ===========
1932
1933  - added support for reading 16-bit/sample PGM/PPM images
1934
1935  - added support for writing 16-bit/sample PGM/PPM images
1936
1937  - improved performance of reading PBM/PGM/PPM images
1938
1939  - added support for writing PBM images if the image is paletted and
1940    contains only black and white
1941
1942  - added a new make_colors value - "mono"
1943
1944  - switched from the svn log Changes to a manual Changes to reduce
1945    noise
1946
1947  - new sample code - samples/flasher.pl
1948
1949 Bug fixes:
1950
1951  - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
1952    was returning an image object with an extra reference, this
1953    resulted in a memory leak.
1954    http://rt.cpan.org/Ticket/Display.html?id=24992
1955
1956  - fix rendering on alpha channel images for the FreeType 2.x driver
1957    http://rt.cpan.org/Ticket/Display.html?id=11972
1958
1959  - reading bmp files now consitently handles short reads.  You can now
1960    supply a parameter to treat a short read as successful and set
1961    i_incomplete
1962    http://rt.cpan.org/Ticket/Display.html?id=8426
1963
1964  - previously, reading ASCII PBM files required spaces between samples,
1965    even though the format doesn't require that
1966
1967  - improved documentation of the unsharpmask filter (I hope)
1968    http://rt.cpan.org/Ticket/Display.html?id=25531
1969
1970  - force flushing of the output from i_tt_dump_names() and test output
1971    in t/t35ttfont.t to prevent output from being mixed up.
1972    https://rt.cpan.org/Ticket/Display.html?id=24859
1973
1974  - rewrite a conditional expression as an if() to hopefully work around
1975    a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
1976    https://rt.cpan.org/Ticket/Display.html?id=25561
1977
1978  - avoid Data::Dumper in regops.perl to support older releases of perl
1979    https://rt.cpan.org/Ticket/Display.html?id=24391
1980
1981 Imager 0.55 - 16 Dec 2006
1982 ===========
1983
1984 This is primarily a bug fix release.
1985
1986 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
1987
1988 There is one new feature:
1989
1990  - the Win32 font driver now supports UTF8 (RT 22166)
1991    http://www.cpanforum.com/threads/3276
1992    http://rt.cpan.org/Ticket/Display.html?id=22166
1993
1994 Several bugs were fixed:
1995
1996  - the string() method would not output the string "0"
1997    http://rt.cpan.org/Public/Bug/Display.html?id=21770
1998
1999  - fills.c was failing to compile on Solaris 10 (compiler unknown)
2000    http://rt.cpan.org/Public/Bug/Display.html?id=21944
2001
2002  - the gif_disposal and gif_user_input tags weren't being read from
2003    the file correctly
2004    http://rt.cpan.org/Public/Bug/Display.html?id=22192
2005
2006  - gif.c was failing to build under MSVC
2007    http://rt.cpan.org/Ticket/Display.html?id=23922
2008
2009  - in some cases strings passed to the string() method were treated as
2010    terminated by NUL (chr 0)
2011    http://rt.cpan.org/Public/Bug/Display.html?id=21770
2012
2013  - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
2014    that's the default build name for zlib on Win32.
2015    http://rt.cpan.org/Ticket/Display.html?id=23064
2016
2017  - search $Config{incpath} for headers too, which we should have been
2018    doing all along.
2019
2020 Win32 font driver fixes:
2021
2022  - the global descent value from bounding box was the wrong sign
2023    http://www.cpanforum.com/threads/3276
2024
2025  - if the first or last glyph overflowed the left or right side of the
2026    advance width they would be clipped
2027
2028
2029 Imager 0.54 - 14 Sep 2006
2030 ===========
2031
2032 This is primarily a feature release:
2033
2034  - a new qtype value 'mixing' has been added to the scale()
2035    method. This is faster than 'normal', slower than 'preview'. This
2036    is based on the method used by pnmscale, and seems to produce less
2037    blurry results than normal.
2038    http://rt.cpan.org/Public/Bug/Display.html?id=20677
2039
2040  - the rubthrough() method can now render onto images with an alpha
2041    channel.
2042    http://rt.cpan.org/Ticket/Display.html?id=20678
2043
2044  - the read_multi() method now falls back to calling doing a single
2045    image read via the read() method and write_multi() will now fall
2046    back to calling write() if a single image is supplied. This means
2047    you can simply call the read_multi() or write_multi() functions
2048    without having to check if the type is formatted by that method.
2049    http://rt.cpan.org/Ticket/Display.html?id=19457
2050    http://rt.cpan.org/Ticket/Display.html?id=19458
2051
2052  - the GIF loop extension can now be written. If you don't have
2053    libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
2054    should upgrade.
2055    http://rt.cpan.org/Ticket/Display.html?id=21185
2056
2057  - getscanline() and setscanline() can now read/write palette index
2058    based data from/to the image for paletted images, by setting type to
2059    'index'.
2060    http://rt.cpan.org/Ticket/Display.html?id=20338
2061
2062  - we no longer hassle you to disable GIF support
2063    http://rt.cpan.org/Ticket/Display.html?id=20687
2064
2065  - minor documentation fixes
2066
2067
2068 Imager 0.53 - 26 Jul 2006
2069 ===========
2070
2071 This is a bugfix release.
2072
2073 Some test code was left in a code path not covered by the test
2074 suite. A test was added to cover this code path and the test code was
2075 removed.
2076 http://rt.cpan.org/Public/Bug/Display.html?id=20705
2077
2078
2079 Imager 0.52 - 25 Jul 2006
2080 ===========
2081
2082 This is primarily a feature release, but contains a fair few bug
2083 fixes, new features:
2084
2085  - ability to read and write MS Windows ICO and CUR files
2086
2087  - you can now add file format plugins to support new file formats
2088
2089  - add POD coverage tests
2090
2091  - setcolors() and addcolors() now accept color names and so on
2092    instead of requiring Imager::Color objects.
2093    http://rt.cpan.org/Ticket/Display.html?id=20056
2094
2095  - flood_fill() can now fill to a specified border color instead of
2096    just to the area the same color as the seed.
2097    http://rt.cpan.org/Ticket/Display.html?id=19618
2098
2099
2100 Bug fixes:
2101
2102  - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
2103    calculating the advance width.
2104    http://rt.cpan.org/Public/Bug/Display.html?id=20554
2105
2106  - bounding_box for the T1 driver wasn't including leading and
2107    trailing spaces in the bounding box as the other drivers did, it also
2108    produced strange results for empty strings or strings containing only
2109    spaces
2110
2111  - when reading CMYK jpeg images they were being transferred to the
2112    image object as is, producing a four channel image. It only looked ok
2113    due to an old still unfixed Photoshop bug. We now convert from the
2114    inverted CMYK that photoshop (and Corel for example) produce into RGB.
2115    http://rt.cpan.org/Ticket/Display.html?id=20416
2116
2117  - reading a CYMK TIFF would result in a 4 channel image, reading any
2118    image with more than 4 channels (eg. RGB with 2 alpha channels) would
2119    result in an error.
2120    http://rt.cpan.org/Ticket/Display.html?id=20415
2121
2122  - added /usr/local/include to the default include search path, since
2123    we were already searching /usr/local/lib for libraries.
2124
2125 And various minor fixes and documentation updates.
2126
2127
2128 Imager 0.51 - 23 Apr 2006
2129 ===========
2130
2131  - fix a validation bug when processing JPEG EXIF data that can cause
2132    a crash
2133    http://rt.cpan.org/Public/Bug/Display.html?id=18496
2134
2135  - fix mis-processing of the src_maxx and src_maxy parameters of the
2136    paste() method
2137    http://rt.cpan.org/Public/Bug/Display.html?id=18712
2138
2139  - fix a problem in Imager's "smart" handling of the color parameter
2140    to various methods.
2141    http://rt.cpan.org/Public/Bug/Display.html?id=18561
2142
2143
2144 Imager 0.50 - 29 Mar 2006
2145 ===========
2146
2147  - CRITICAL: fixes a segmentation fault from attempting to write a 2
2148    or 4 channel image to jpeg or a 2 channel image to tga where the
2149    output is an in-memeory buffer.
2150    http://rt.cpan.org/Public/Bug/Display.html?id=18397
2151
2152  - fixes an incorrect pointer parameter in the PNG code
2153    http://rt.cpan.org/Public/Bug/Display.html?id=18051
2154
2155  - skip Inline::C tests when building in a directory with spaces
2156    http://rt.cpan.org/Public/Bug/Display.html?id=18049