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