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