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