[rt.cpan.org #64785] GIF encoding is very slower on Imager 0.78+
[imager.git] / Changes
CommitLineData
7623d340
TC
1Imager release history. Older releases can be found in Changes.old
2
95c08d71
TC
3Imager 0.80 - unreleased
4===========
5
6Bug fixes:
7
8 - images with an translucent alpha channel were not scaled correctly
9 by the default (qtype=normal) scaling method.
10 https://rt.cpan.org/Public/Bug/Display.html?id=63922
11
34c03f04
TC
12 - Imager::Color::Float now translates "#FFFFFF" to white instead of
13 just a little darker.
14
0348fe07
TC
15 - make the default color map build algorithm "mediancut".
16 https://rt.cpan.org/Ticket/Display.html?id=64785
17
95c08d71 18Imager 0.79 - 10 Dec 2010
62869327
TC
19===========
20
21 - add Imager::Test to the POD coverage tests and document the missing
22 functions.
23
2a2c791f
TC
24 - the convert() method now optimizes the case where all output
25 channels are either 0, sourced from a single input channel or 1.
26 This significantly speeds up presets like "addalpha", "green".
27 https://rt.cpan.org/Ticket/Display.html?id=51254
28
b5c0ab7f
TC
29 - add wiggle.pl sample, as suggested by Dan Oppenheim.
30
b47464c1
TC
31 - add the combine() method to combine channels from multiple source
32 images into a new image
33 https://rt.cpan.org/Ticket/Display.html?id=11872
34
62869327
TC
35Bug fixes:
36
37 - treat the co-efficients for convert() as doubles instead of floats.
38
d67dd866
TC
39 - If a higher (earlier) priority font handler failed to load, that
40 would crash preventing loading of later font handlers.
9413a3f3
TC
41 https://rt.cpan.org/Ticket/Display.html?id=62855
42
a9120a5e
TC
43 - parse defines from the options returned by pkg-config --cflags
44 https://rt.cpan.org/Ticket/Display.html?id=63223
02f040a6
TC
45
46 - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
47 included in the tarball. They are now included.
a9120a5e 48
893474f1 49Imager 0.78 - 4 Oct 2010
f5b4354e
TC
50===========
51
52Bug fixes:
53
54 - don't access deprecated members of the png_structp.
55 https://rt.cpan.org/Ticket/Display.html?id=60242
56
8289f78b
TC
57 - document that using color objects is faster than supplying colors
58 by name, etc.
59 https://rt.cpan.org/Ticket/Display.html?id=61047
60
0c3c1180
TC
61 - Imager::Probe now accepts array references for incpath and libpath.
62 https://rt.cpan.org/Ticket/Display.html?id=60244
63
b6035795 64Imager 0.77_02 - 27 Sep 2010
aca4e30a
TC
65==============
66
95b9922f 67 - moved Win32, FreeType 2 font support into sub-modules.
aca4e30a
TC
68 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
69 Uses Imager::Probe now.
70 https://rt.cpan.org/Public/Bug/Display.html?id=61328
71
c6683e4d
TC
72 - tested successfully with jpeg-8b
73 https://rt.cpan.org/Ticket/Display.html?id=60221
74
e85532b9
TC
75Bug fixes:
76
77 - from _01: look for missing file support test files in the right
78 places.
79
353eb6e7
TC
80 - flood_fill() wouldn't fill the right side of a single scan-line
81 fill area.
82 Thanks to Nicolas Roggli for reporting this.
83
95b9922f
TC
84 - flood_fill wouldn't fill to the left edge of the image if the
85 starting line didn't reach the left edge.
86 Thanks to Nicolas Roggli for reporting this.
87
beb9ba23
TC
88Imager 0.77_01 - 13 Sep 2010
89==============
82f14556
TC
90
91 - add each library-directory/pkgconfig/ to the pkg-config search path
92 in Imager::Probe.
93 Thanks to Justin Davis.
94 https://rt.cpan.org/Ticket/Display.html?id=60491
95
8ab27e7e
TC
96 - moved GIF, TIFF, JPEG file handling code into sub-modules in
97 preparation for separate distribution.
ec6d8908
TC
98 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
99
173c91ba
TC
100 - optimize filled box drawing (color, not fill)
101
82f14556
TC
102Bug fixes:
103
104 - Imager::Probe was calling ExtUtils::Liblist to initialize
105 LD_RUN_PATH supplying an undefined value rather than the found
106 directory. Thanks to Justin Davis.
107 https://rt.cpan.org/Ticket/Display.html?id=60491
108
b851aeeb
TC
109 - only prepend ./ to font filenames when passing them to T1Lib and
110 then only when it would use its search mechanisms.
111 https://rt.cpan.org/Ticket/Display.html?id=60509
112
173c91ba 113 - fix the cache check for the X rgb.txt loader. This is typically
cb4f51d6
TC
114 used for color translation on Unix-like systems, and the fix
115 improves performance of supplying colors by name by about 80 times.
116 Test code that managed 3400 10x10 pixel boxes/second sped up to
117 25700 boxes/second.
b851aeeb 118
d3a96113
TC
119 - clarify that Imager doesn't write EXIF metadata to images.
120 https://rt.cpan.org/Ticket/Display.html?id=60637
121
122 - Imager::Probe can now search subdirectories under its include path.
123 Used by the PNG Makefile.PL to find headers and libraries when they
124 aren't in the base directory, as in cygwin.
125 https://rt.cpan.org/Ticket/Display.html?id=60635
126
43452432
TC
127Imager 0.77 - 11 Aug 2010
128===========
129
130I don't want Imager::File::PNG indexed as part of Imager, but forgot
131to update the META.yml before updating the version.
132
133 - don't index Imager::File::PNG as part of Imager
134
135 - add resources to META.yml
136
137Imager 0.76 - not released
120f4287
TC
138===========
139
140Bug fixes:
141
142 - the align_string() method would ignore a string of "0" due to a
143 mis-use of C< ||= >.
144 Thanks to Maurice Height for reporting this.
145 https://rt.cpan.org/Ticket/Display.html?id=60199
146
0e66b07f
TC
147Imager 0.75_03 - 09 Aug 2010
148==============
149
150Bug fixes:
151
152 - read_types() and write_types() would include png when it wasn't
153 available due to a problem with the %formats tie
154
155 - handle dependent libraries correctly (eg -lpng requiring -lz) in
156 the code run phase of library probing.
157
7ac2e52e
TC
158Imager 0.75_02 - 07 Aug 2010
159==============
160
161Bug fixes:
162
163 - add file missing from MANIFEST, which was causing TIFF failures.
164
496ea64d
TC
165Imager 0.75_01 - 06 Aug 2010
166==============
167
168Test release for the new PNG probe.
75812841 169
a596d4f6
TC
170 - added the ability to read multiple-image PNM files.
171 Note that unlike the pbm/pgm/ppm specification this accepts mixed
172 format files and allows white space padding between files.
173 Thanks to Philip Gwyn (Leolo) for this patch.
174
1d7e3124
TC
175 - moved the PNG file handling code into a sub-module in preparation
176 for separate distribution.
177 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
178 Also helps avoid complications from -I/-L compile/link options from
179 other libraries.
180
75812841
TC
181Bugs:
182
183 - Imager->new(data => $data) didn't try to process image file data in
184 $data
185 https://rt.cpan.org/Ticket/Display.html?id=58761
186
b6071a43
TC
187 - t/t50basicoo.t no longer depends on the other tests to generate its
188 input files.
189 https://rt.cpan.org/Ticket/Display.html?id=9798
190 Also, it wasn't testing pnm (pnm vs ppm mix-up)
191
a9da425a
TC
192 - update the documentation of hardinvert to match the change in 0.62.
193 https://rt.cpan.org/Ticket/Display.html?id=59785
194
5558f899
TC
195 - added hardinvertall filter which also inverts the alpha channel
196 (sorry for the mess)
197
10b85929
TC
198 - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
199 the probe can find the library for the test run.
200 https://rt.cpan.org/Ticket/Display.html?id=57518
201
75812841 202Imager 0.75 - 20 Jun 2010
b13a3ddb
TC
203===========
204
205 - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
206 perls (not measured)
207
46e2e4a3
TC
208Bugs:
209
8c194049
TC
210 - an opacity fill based on a fountain fill would segfault when
211 filling an 8-bit/sample image.
212
1c5252ed
TC
213 - merge thickline branch polygon fix
214 https://rt.cpan.org/Ticket/Display.html?id=43518
215
41c88ecd 216Imager 0.74 - 7 May 2010
8d46e5da
TC
217===========
218
219Bug fixes:
220
221 - read_multi() didn't handle a missing file format library correctly,
222 aborting on failing to call i_readgif_multi_wiol() or
223 i_readtiff_multi_wiol().
224
5715f7c3
TC
225 - fix spelling errors patched by Debian
226 http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
227
228 - add an (unshipped) author test to spellcheck Imager's POD.
7468f3fa 229
38218f79
TC
230 - update the TIFF file format documentation
231 https://rt.cpan.org/Ticket/Display.html?id=56510
232
e17da819
TC
233 - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
234
704f12d5 235Imager 0.73 - 15 Mar 2010
40068b33
TC
236===========
237
238 - implement outline circles, both anti-aliased and not
239 https://rt.cpan.org/Ticket/Display.html?id=19755
240
e958b64e
TC
241 - a combine => "none" fill to a 1 or 3 channel image would produce
242 the incorrect colour.
243
b2db3662
TC
244Imager 0.72 - 09 Dec 2009
245===========
246
247Bump version for release, since 0.71_03 is stable with CPAN testers.
248
6936706b
TC
249Imager 0.71_03 - 5 Dec 2009
250==============
251
252 - further adjust the threads test so it only performs the tests on
253 perls where it's expected to work, and only if the threads module
254 can be loaded.
255
0750777c
TC
256Imager 0.71_02 - 1 Dec 2009
257==============
258
48ad0e66
TC
259 - adjust the way we load the threads module for the threads test so
260 it works with non-threaded perls
0750777c 261
b89f0fcd 262Imager 0.71_01 - 30 Nov 2009
e41cfe8f
TC
263===========
264
265Bug fixes:
266
267 - use scanline oriented operations to flip images instead of pixel
268 operations
269 https://rt.cpan.org/Ticket/Display.html?id=39278
270
271 - use double/sample operations to flip large sample images instead of
272 8-bit sample operations.
273 https://rt.cpan.org/Ticket/Display.html?id=39280
274
de3ca2fd
TC
275 - fix POD nits
276 https://rt.cpan.org/Ticket/Display.html?id=51874
277
ffddd407
TC
278 - prevent double-frees when someone creates Imager objects and then
279 creates a thread. Note: this just handles some simple cases,
280 Imager doesn't support perl threads, and isn't likely to.
281 https://rt.cpan.org/Ticket/Display.html?id=52268
282
3517794b 283Imager 0.71 - 16 Nov 2009
6a3cbaef
TC
284===========
285
a16bae72
TC
286 - add the opacity fill type - an adaptor that modifies the opacity of
287 another fill.
288
6a3cbaef
TC
289Bug fixes:
290
291 - the conv filter now enforces that the sum of the coefficients is
292 non-zero. Also, rather than skipping pixels off the edge off the
293 edge of the image, the closest edge pixel is used. Previously
294 dividing by the zero sum of coefficients could cause invalid
295 results or runtime exceptions.
296 Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
297 this bug.
298
189d5775 299Imager 0.70 - 21 Sep 2009
2b82e731
TC
300===========
301
302Bug fixes:
303
304 - release image row and comments memory on all error returns in gif
305 reader
306
307 - handle zero length extensions, previously this would cause a null
308 pointer dereference
309 Thanks to Krzysztof Wojtaś for the test data and fix for this.
310
b3afeed5
TC
311 - an integer division meant that preview scaling to below 1 pixel
312 wide or high (which isn't too useful anyway) was calculating using
313 NaNs on most platforms, and causing an exception on others.
314 Thanks to David Cantrell for producing a backtrace of the crash on
315 his Alpha-NetBSD CPAN test box which made it possible to track this
316 down.
317
b1e29946 318Imager 0.69 - 08 Sep 2009
25f4e775
TC
319===========
320
b1e29946 321Bug fixes:
25f4e775
TC
322
323 - broken test fix - was attempting to call a function skip_all, when
324 that should be a parameter to plan().
325
b1e29946
TC
326 - briefly document apidocs.perl, the tool used to build
327 Imager::APIRef and make some minor enhancements
328
329 - various minor documentation enhancements and fixes.
330
5920304a 331Imager 0.68 - 07 Sep 2009
c5f447ac
TC
332===========
333
3c252111
TC
334 - Imager->new(file => $filename) and other similar incantations will
335 load the given file.
336 https://rt.cpan.org/Ticket/Display.html?id=48261
337
c5f447ac
TC
338Bug fixes:
339
340 - avoid using CHECK as a label in Imager::Test
341 http://nntp.x.perl.org/group/perl.cpan.testers/5220921
342
0d670555
TC
343 - re-work most image file test files that require a library into
344 separate library present/not present files to remove stupidly long
345 conditionals
346
347 - don't treat rubthrough() outside the bounds of the target image as
348 an error.
349 http://nntp.x.perl.org/group/perl.cpan.testers/5185716
350
8d800216
TC
351Imager 0.67_01 - 02 Sep 2009
352==============
500888da
TC
353
354Bug fixes:
355
356 - correct documentation of default of raw image interleave read
357 parameter
358 https://rt.cpan.org/Ticket/Display.html?id=42074
359
360 - add raw_ prefix to raw read parameters, though the original names
361 still work.
362
363 - fail the read if an invalid raw_interleave parameter is supplied
364
365 - warn if no interleave or raw_interleave parameter is supplied,
366 since the documented default was wrong, and incompatible with the
367 write format
368
369 - for reading raw images, if raw_storechannels > raw_datachannels,
370 set the extra channels in the image to 0
371
cd476e58
TC
372 - when probing for executables like freetype-config, search for .bat
373 and .cmd on MSWin32, as well as .exe.
374 https://rt.cpan.org/Ticket/Display.html?id=49275
500888da 375
f9a39263
TC
376 - re-work the external libraries section of README:
377 - list Debian and Redhat package names for each library
378 - reformatting
379 - update URLs
380
f45b774f
TC
381 - use the new EU::MM META_MERGE facility instead of generating
382 META.yml from scratch
383 https://rt.cpan.org/Ticket/Display.html?id=47888
384
d6b51d8c
TC
385 - use Devel::CheckLib (bundled, modified) to check which release of
386 libtiff is installed and reject 3.9.0
78645bd4
TC
387 http://bugzilla.maptools.org/show_bug.cgi?id=2088
388 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
d6b51d8c 389
249af030
TC
390Imager 0.67 - 12 Dec 2008
391===========
392
393Bug fixes:
394
395 - fix a packaging error
396
cca21862 397Imager 0.66 - 12 Dec 2008
3c8fee33
TC
398===========
399
6b22ba84
TC
400 - 24-bit color .ICO/.CUR files can now be read.
401
3c8fee33
TC
402Bug fixes:
403
6b22ba84
TC
404 - an optimization skipping 0 src alpha values could cause the
405 rubthrough() to read past the end of a buffer.
406 http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
407
5c0d0ddf
TC
408 - corrected a reference leak where writing GIFs would leak memory.
409 This could also happen calling to_paletted().
410 Also documented the underlying long existing feature where the
411 colors parameter is filled with the generated color table and added
412 tests for it.
3c8fee33
TC
413 http://rt.cpan.org/Ticket/Display.html?id=41028
414
8e7f5809
TC
415 - write out the image size in bytes field of a BMP correctly.
416 http://rt.cpan.org/Ticket/Display.html?id=41406
417
c586eb58
TC
418 - add limited tests for Imager::ExtUtils
419
420 - make Imager::ExtUtils->includes use an absolute path, since
421 a relative path could cause failures using Inline::C.
422 http://rt.cpan.org/Ticket/Display.html?id=37353
423
6b22ba84
TC
424 - re-arrange the POD for Imager::Font::BBox:
425 - mark total_width(), pos_width(), end_offset() obsolete, since
426 they're mostly for backwards compatibility
427 - group width methods and height methods
428 https://rt.cpan.org/Ticket/Display.html?id=39999
17d9fe35 429
0727e3f5 430Imager 0.65 - 20 May 2008
546ea21c
TC
431===========
432
433Bug fixes:
434
435 - In some cases when an error occurs reading those parts of a JPEG
436 file after the image the scan-line buffer could be freed a second
437 time. In cases where the the error occured while reading the image
438 data it's possible that the buffer could have leaked.
439 Thanks to Gabriel Vasseur for reporting this and help in tracking
440 it down.
441
43b2b326
TC
442 - the gif_screen_height tag was overriding the screen width and being
443 ignored for the screen height when present.
444 https://rt.cpan.org/Public/Bug/Display.html?id=35568
445
e02d22d2 446Imager 0.64 - 23 April 2008
de470892
TC
447===========
448
e02d22d2
TC
449This is a bug fix release. This includes a fix for a possible
450security issue.
451
de470892
TC
452Bug fixes:
453
e02d22d2
TC
454 - Possible security issue: The floating point sample path for image
455 based fills had a buffer overflow. This would overwrite the end of
456 a malloc()ed buffer with double precision floats.
457 http://rt.cpan.org/Ticket/Display.html?id=35324
6912d85a 458 CVE-2008-1928
e02d22d2 459
de470892
TC
460 - check that the result of fileno($fh) is defined rather than simply
461 true when read() or write() is supplied with an fh parameter.
462 http://rt.cpan.org/Ticket/Display.html?id=35139
463
464 - i_scale_axis() wasn't checking the result of i_img_new_ch()
465 resulting in a SIGSEGV when attempting to scale an image to a size
466 too large to fit in memory. This is a NULL pointer access issue,
467 not a buffer overflow.
468 Added a check for the failure.
469 scale_calculate() (and hence scale()) will now fail if any of the
470 scale size parameters are a reference.
471 http://rt.cpan.org/Ticket/Display.html?id=35172
472
04f85f63
TC
473 - Regression: filling a greyscale image with a hatch used the wrong
474 color channels from the supplied fg/bg colors.
475 https://rt.cpan.org/Ticket/Display.html?id=35278
476
a256aec5
TC
477 - fixed a related problem for image fills.
478
49240201 479Imager 0.63 - 7 April 2008
33b0ffa6
TC
480===========
481
242d7497
TC
482This release primarily contains changes to improve ease of use -
483rather than you having to convert images to the appropriate number of
484channels, Imager handles it internally. How to handle drawing colors
485and the default combine mode is a thornier problem left for some other
486release.
487
d1555273
TC
488 - the font libraries are now only initialized when needed.
489 http://rt.cpan.org/Ticket/Display.html?id=28825
490
9b1ec2b8
TC
491 - moved the imtoc.perl code into Imager::Preprocess
492
493 - paste() and rubthrough() now adapt the source image data to the
494 destination, so you can now safely paste/rubthrough from greyscale
495 images to color images or back, or from alpha channel images to
496 noalpha channels or back.
497 https://rt.cpan.org/Ticket/Display.html?id=30908
498
499 - rubthrough() now falls back to pasting when the source doesn't have
500 an alpha channel. This effectively treats the source as having a
501 max alpha channel, the right thing to do.
502 http://rt.cpan.org/Ticket/Display.html?id=29944
503
504 - re-worked most of the area filling code to use a common set of
505 functions when filling.
506 Corrected normal combine mode.
507 Rewrote most of the combine modes to match the way the SVG draft
508 defines them with respect to a translucent source and destination.
509 Added tests for translucent source and destination.
510 Added tests to check 8-bit/sample and double/sample combines work
511 similarly.
512 https://rt.cpan.org/Ticket/Display.html?id=29879
513
07d9c639
TC
514 - writing a 2 or 4 channel image to a JPEG file will now write that
515 image as if composited against a background, black by default,
516 overridable with the i_background tag/parameter.
6e4af7d4
TC
517 https://rt.cpan.org/Ticket/Display.html?id=29876
518
07d9c639
TC
519 - writing a 2 or 4 channel image to a PGM/PPM file will now write
520 that image as if composited against a background, black by default,
fa90de94
TC
521 overridable with the i_background tag/parameter.
522 http://rt.cpan.org/Ticket/Display.html?id=30074
523
07d9c639
TC
524 - writing a 2 or 4 channel image to a BMP file will now write that
525 image as if composited against a background, black by default,
526 overridable with the i_background tag/parameter.
527 http://rt.cpan.org/Ticket/Display.html?id=30075
528
33b0ffa6
TC
529Bug fixes:
530
531 - Imager::Matrix2d->translate() now only requires one of the x or y
532 parameters.
533 http://rt.cpan.org/Ticket/Display.html?id=29937
534
2757bad0
TC
535 - mixing qtype scaling now sets all channels of a pixel to zero if
536 the pixel has zero coverage (zero alpha). This should produce more
537 compressible output files.
538 http://rt.cpan.org/Ticket/Display.html?id=32324
539
3da08517
TC
540 - removed the pointless #! line from lib/Imager/Font/Wrap.pm
541 Noticed when I saw:
542 https://bugzilla.redhat.com/show_bug.cgi?id=166254
543 I'm not changing the #! lines of the sample code, since it's sample
544 code, not intended for installation.
545 http://rt.cpan.org/Ticket/Display.html?id=33408
546
242d7497
TC
547 - some TGA images weren't being detected correctly as TGA images
548 https://rt.cpan.org/Ticket/Display.html?id=32925
549
550 - handling of the left-over bit for 16-bit/pixel TGA images has been
551 changed to match the behaviour of the GIMP. Previously the bit
552 being set was treated as an opaque pixel, but one user reported a
553 problem with loading such an image. I haven't been able to find any
554 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
555 I'll match it's behaviour. See issue 114913 in the GIMP's
556 bugzilla.
557 http://rt.cpan.org/Ticket/Display.html?id=32926
558
5daa9d34 559Imager 0.62 - 10 December 2007
ac8138b0
TC
560===========
561
d8e0c3ba
TC
562 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
563 to /path under your home directory.
564 http://rt.cpan.org/Ticket/Display.html?id=29484
565
50ff958e
TC
566 - the old dynaload code used Mach API functions to load dynamic
567 libraries on Mac OS X. These APIs have been deprecated in OS X
568 10.5 and were causing some build problems.
569 So henceforth Imager uses the dlopen() family of functions, and you
570 will need version 10.3 or later of OS X.
571
3309187a
TC
572 - added the det() function to the transform2() engine.
573 added the sample quad_to_square.pl
574 Courtesy Richard Fairhurst.
575 http://rt.cpan.org/Ticket/Display.html?id=31244
576
ac8138b0
TC
577Bug fixes:
578
579 - samples/gifscale.pl sourced the base value for gif_top from
580 gif_left.
581 Thanks to Eleneldil G. Arilou for pointing this out.
582
678a9a65
TC
583 - t/t82inline.t no longer loads B at runtime, to work around a bug
584 in some 5.005_0[45] installations.
585 http://rt.cpan.org/Ticket/Display.html?id=30508
586
587 - work around Module::Depends::Intrusive bug #21229
588 http://rt.cpan.org/Ticket/Display.html?id=30520
ac8138b0 589
bea65b1f
TC
590 - the hardinvert filter no-longer inverts the alpha channel.
591 http://rt.cpan.org/Ticket/Display.html?id=30002
592
593 - the hardinvert filter now supports large samples
594
b7809486 595Imager 0.61_02 - 28 November 2007
f74e6efc 596==============
874c55db 597
bd8052a6
TC
598 - major TIFF support re-work
599 http://rt.cpan.org/Ticket/Display.html?id=20329
600
601 - added a C level image interface for accessing samples from 1-32
602 bits, exposed this at the perl level in getsamples()
603
604 - the conv filter now works at floating point precision for high bit
605 images
606
607 - added is_bilevel method to test whether an image should be written as
608 a bilevel image if the image format supports it.
609
610 - added -log-stderr as an Imager import list option
611
612 - added some important types to Imager::APIRef
613
614 - added test_image_double() to Imager::Test
615
874c55db
TC
616Bug fixes:
617
618 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
619 segments
620
621 - the scale() method with qtype mixing now handles images with an
622 alpha channel correctly.
623
8d17eae9
TC
624 - fixed a broken link from the "animated GIF" entry in the concept index.
625 Thanks to Slaven Rezic.
626 http://rt.cpan.org/Ticket/Display.html?id=30889
627
d3bf4eaf
TC
628 - on some perl's the infix expression parser test would fail due to
629 actions in the grammar returning false. Made sure all actions return
630 a true value.
8b96ad6b
TC
631 Thanks to Richard Fairhurst for spending a lot of time in tracking
632 down this problem.
680c329d 633 http://rt.cpan.org/Public/Bug/Display.html?id=29562
d3bf4eaf 634
d06f6707 635Imager 0.61 - 5 November 2007
1cfa190e
TC
636===========
637
638 - added samples/gifscale.pl, which adjusts the screen size/position tags
639 when scaling an animated gif
640 http://rt.cpan.org/Ticket/Display.html?id=27591
641
8a2cd317
TC
642Bug fixes:
643
e7ac18bd
TC
644 - correct handling of sz in matrix_transform() - this should allow
645 perspective type transformations to work now.
646 http://rt.cpan.org/Ticket/Display.html?id=29936
647
8a2cd317
TC
648 - prevent a cast to integer warning on x64 builds in datatypes.c
649 also fixed some other type warnings
650 https://rt.cpan.org/Ticket/Display.html?id=30204
651
9188b23e
TC
652 - some sub-directory tests depended on files produced by the parent
653 directory tests
654 http://rt.cpan.org/Ticket/Display.html?id=30203
655
7febff1d
TC
656 - Imager::Font::Wrap doesn't correctly set savepos
657 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
658 http://rt.cpan.org/Ticket/Display.html?id=29771
659
76411e99
TC
660 - test 171 in t/t01introvert.t was failing on perls configured to
661 use long double.
662 http://rt.cpan.org/Ticket/Display.html?id=29413
663
3f29de50
TC
664 - the code for the transform2() uminus operator was missing a break.
665 Added tests for better code coverage of the ops.
666 http://rt.cpan.org/Ticket/Display.html?id=29296
667
ed107438
TC
668 - the SGI RLE compression code could overflow its compression buffer
669 http://rt.cpan.org/Ticket/Display.html?id=30334
670
671 - the 32-bit output function used by the SGI code only handled values
672 under 0x10000. This was most noticable when writing large RLE images.
673 http://rt.cpan.org/Ticket/Display.html?id=30335
674
c7481ae1
TC
675 - validate chan_count for chans == NULL for each of the i_gsamp()
676 implementations.
677 http://rt.cpan.org/Ticket/Display.html?id=28985
678
ff37fc3f
TC
679 - attempt to work around the test failure at
680 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
681 http://rt.cpan.org/Ticket/Display.html?id=29562
682
f245645a
TC
683 - improve the error messages produced when attempting to read or write
684 an unknown image file format.
685 http://rt.cpan.org/Ticket/Display.html?id=30103
686
333d7485
TC
687 - improve the transform2() documentation
688 http://rt.cpan.org/Ticket/Display.html?id=29267
689
3b115720
TC
690 - correctly generate the author key in META.yml
691 http://rt.cpan.org/Ticket/Display.html?id=30377
692
13c9a303
TC
693 - correctly blend a rotated (or matrix_transformed()) image when
694 performing interpolation in the presence of an alpha channel.
8a071022
TC
695 Also corrected the centring of the rotated image on the output
696 image.
13c9a303 697
0e622083 698Imager 0.60 - 30 August 2007
bcff4dd9
TC
699===========
700
d5477d3d
TC
701 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
702 now has full SGI RGB image format, including RLE and 16-bit/sample
703 images.
704 https://rt.cpan.org/Ticket/Display.html?id=8666
705
706 - logging functions are now available in the API
707
a60905e4
TC
708 - applied Gabriel Vasseur's patch
709 added documentation, further tests, and support for greyscale images
710 Obviously problems are my fault :)
711 https://rt.cpan.org/Ticket/Display.html?id=28142
712
413dc198
TC
713 - the mask for ICO/CUR images is now applied as an alpha channel to
714 the returned image. For the old behaviour, supply ico_masked => 0
715 to read() or read_multi(). This should be less confusing when
716 using Imager as a general image processor.
717 https://rt.cpan.org/Ticket/Display.html?id=29001
718
bcff4dd9
TC
719Bug fixes:
720
721 - in some cases it's possible for giflib/libungif to return color
722 indexes outside the range of colors defined by the image's palette.
723 We now expand the palette to match the indexes used.
724 Thanks to Gabriel Vasseur for reporting this.
725
02576e8d
TC
726 - fixed various memory leaks that could occur when failing to read png,
727 jpeg, bmp or tga files.
728
b3aa972f
TC
729 - to avoid confusion, channels not present in the image are returned as
730 zero by getscanline(). This has no effect on the C level i_glin()
731 and i_glinf() API functions which continue to not set the unused
732 channels.
733
d5477d3d
TC
734 - the convert() method now returns an image of the same sample size as
735 the source image.
736 https://rt.cpan.org/Ticket/Display.html?id=28492
737
baa880ef
TC
738 - remove repeated text in Imager::Files
739 http://rt.cpan.org/Ticket/Display.html?id=27589
740
741 - be even more explicit that scale() and friends don't modify the source
742 image, but return a new image.
743 http://rt.cpan.org/Ticket/Display.html?id=28570
744
0561d49c
TC
745 - improve the error message from errstr() when you try to load a font
746 for which the driver hasn't been built in Imager.
747 http://rt.cpan.org/Ticket/Display.html?id=27571
748
d8a39ce0
TC
749 - transparency is now enabled by default when writing GIF images
750 http://rt.cpan.org/Ticket/Display.html?id=27615
751
5730d6e7
TC
752 - Imager would not load on Windows 98
753 http://rt.cpan.org/Ticket/Display.html?id=27653
754
b4996113 755Imager 0.59 - 14 June 2007
e6e94ab0
TC
756===========
757
758Bug fixes:
759
760 - fixes a regression introduced by the fixes for RT 11972
761 http://rt.cpan.org/Ticket/Display.html?id=27546
762
9fc9d0ca
TC
763 - cropping outside the image would return an Imager object with
764 no low-level image object, instead of returning false.
765 Fixed by: Philip Gwyn (Leolo)
766 http://rt.cpan.org/Ticket/Display.html?id=27509
767
7e7508dd
TC
768Imager 0.58 - 16 May 2007
769===========
770
771No significant changes from 0.57_01.
772
1970a2c7
TC
773Imager 0.57_01 - 11 May 2007
774==============
d034a178 775
f8e36694
TC
776 - added to_rgb16 to produce a 16-bit/sample version of an image
777
95b2bff4
TC
778 - improve freetype 1.x text output efficiency
779
d034a178
TC
780Bug fixes:
781
782 - search another place for rgb.txt, and check all the places
783 Imager::Color checks when deciding whether to skip testing it
784 http://rt.cpan.org/Ticket/Display.html?id=26064
785
73962964
TC
786 - use a convolution kernel size based on the stddev rather than a
787 fixed size when performing a gaussian blur
788 http://rt.cpan.org/Ticket/Display.html?id=25645
789
01b84320
TC
790 - document the difference() method's mindist parameter, and debug it.
791
7e7508dd 792 - put the Imager release number in the Inline::C generated code to
22f9ca48
TC
793 regenerate Inline code when a new release of Imager is installed.
794 http://rt.cpan.org/Ticket/Display.html?id=26278
795
fa16b6c6
TC
796 - fix rendering on alpha channel images for the FreeType 1.x driver.
797 http://rt.cpan.org/Ticket/Display.html?id=11972
798
4c84ccfb
TC
799 - fix rendering on alpha channel images for the T1lib driver.
800 http://rt.cpan.org/Ticket/Display.html?id=11972
801
1fe8316b
TC
802 - reworked library probing, we can now set more than one probe
803 function for a library. Disabled the default (non-freetype-config)
804 library probe and added an extra probe function that searches for
805 both ft2build.h and whatever it includes, and adds -I as needed.
806 Hopefully this will fix build problems like
807 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
808 http://rt.cpan.org/Ticket/Display.html?id=26086
809
bb5712de
TC
810Imager 0.57 - 30 Apr 2007
811===========
812
813This is a maintenence release fixing a security issue in Imager.
814
815 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
816 overflow in malloced memory. There will be further discussion of
817 this issue in the ticket below.
818 http://rt.cpan.org/Ticket/Display.html?id=26811
7e7508dd
TC
819 CVE-2007-2459 CVE-2007-2413
820 The descriptions at cve.mitre.org varied in quality, please see the
821 ticket at rt.cpan.org for a more accurate description of the issue.
bb5712de 822
d034a178 823Imager 0.56 - 1 Apr 2007
7623d340
TC
824===========
825
826 - added support for reading 16-bit/sample PGM/PPM images
827
828 - added support for writing 16-bit/sample PGM/PPM images
829
830 - improved performance of reading PBM/PGM/PPM images
831
832 - added support for writing PBM images if the image is paletted and
833 contains only black and white
834
835 - added a new make_colors value - "mono"
836
837 - switched from the svn log Changes to a manual Changes to reduce
838 noise
839
1225d272
TC
840 - new sample code - samples/flasher.pl
841
7623d340
TC
842Bug fixes:
843
844 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
845 was returning an image object with an extra reference, this
846 resulted in a memory leak.
847 http://rt.cpan.org/Ticket/Display.html?id=24992
848
849 - fix rendering on alpha channel images for the FreeType 2.x driver
850 http://rt.cpan.org/Ticket/Display.html?id=11972
851
852 - reading bmp files now consitently handles short reads. You can now
853 supply a parameter to treat a short read as successful and set
854 i_incomplete
855 http://rt.cpan.org/Ticket/Display.html?id=8426
856
857 - previously, reading ASCII PBM files required spaces between samples,
858 even though the format doesn't require that
859
1225d272
TC
860 - improved documentation of the unsharpmask filter (I hope)
861 http://rt.cpan.org/Ticket/Display.html?id=25531
862
863 - force flushing of the output from i_tt_dump_names() and test output
864 in t/t35ttfont.t to prevent output from being mixed up.
865 https://rt.cpan.org/Ticket/Display.html?id=24859
866
867 - rewrite a conditional expression as an if() to hopefully work around
868 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
869 https://rt.cpan.org/Ticket/Display.html?id=25561
870
871 - avoid Data::Dumper in regops.perl to support older releases of perl
872 https://rt.cpan.org/Ticket/Display.html?id=24391
873
7623d340
TC
874Imager 0.55 - 16 Dec 2006
875===========
876
877This is primarily a bug fix release.
878
879Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
880
881There is one new feature:
882
883 - the Win32 font driver now supports UTF8 (RT 22166)
884 http://www.cpanforum.com/threads/3276
885 http://rt.cpan.org/Ticket/Display.html?id=22166
886
887Several bugs were fixed:
888
889 - the string() method would not output the string "0"
890 http://rt.cpan.org/Public/Bug/Display.html?id=21770
891
892 - fills.c was failing to compile on Solaris 10 (compiler unknown)
893 http://rt.cpan.org/Public/Bug/Display.html?id=21944
894
895 - the gif_disposal and gif_user_input tags weren't being read from
896 the file correctly
897 http://rt.cpan.org/Public/Bug/Display.html?id=22192
898
899 - gif.c was failing to build under MSVC
900 http://rt.cpan.org/Ticket/Display.html?id=23922
901
902 - in some cases strings passed to the string() method were treated as
903 terminated by NUL (chr 0)
904 http://rt.cpan.org/Public/Bug/Display.html?id=21770
905
906 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
907 that's the default build name for zlib on Win32.
908 http://rt.cpan.org/Ticket/Display.html?id=23064
909
910 - search $Config{incpath} for headers too, which we should have been
911 doing all along.
912
913Win32 font driver fixes:
914
915 - the global descent value from bounding box was the wrong sign
916 http://www.cpanforum.com/threads/3276
917
918 - if the first or last glyph overflowed the left or right side of the
919 advance width they would be clipped
920
921
922Imager 0.54 - 14 Sep 2006
923===========
924
925This is primarily a feature release:
926
927 - a new qtype value 'mixing' has been added to the scale()
928 method. This is faster than 'normal', slower than 'preview'. This
929 is based on the method used by pnmscale, and seems to produce less
930 blurry results than normal.
931 http://rt.cpan.org/Public/Bug/Display.html?id=20677
932
933 - the rubthrough() method can now render onto images with an alpha
934 channel.
935 http://rt.cpan.org/Ticket/Display.html?id=20678
936
937 - the read_multi() method now falls back to calling doing a single
938 image read via the read() method and write_multi() will now fall
939 back to calling write() if a single image is supplied. This means
940 you can simply call the read_multi() or write_multi() functions
941 without having to check if the type is formatted by that method.
942 http://rt.cpan.org/Ticket/Display.html?id=19457
943 http://rt.cpan.org/Ticket/Display.html?id=19458
944
945 - the GIF loop extension can now be written. If you don't have
946 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
947 should upgrade.
948 http://rt.cpan.org/Ticket/Display.html?id=21185
949
950 - getscanline() and setscanline() can now read/write palette index
951 based data from/to the image for paletted images, by setting type to
952 'index'.
953 http://rt.cpan.org/Ticket/Display.html?id=20338
954
955 - we no longer hassle you to disable GIF support
956 http://rt.cpan.org/Ticket/Display.html?id=20687
957
958 - minor documentation fixes
959
960
961Imager 0.53 - 26 Jul 2006
962===========
963
964This is a bugfix release.
965
966Some test code was left in a code path not covered by the test
967suite. A test was added to cover this code path and the test code was
968removed.
969http://rt.cpan.org/Public/Bug/Display.html?id=20705
970
971
972Imager 0.52 - 25 Jul 2006
973===========
974
975This is primarily a feature release, but contains a fair few bug
976fixes, new features:
977
978 - ability to read and write MS Windows ICO and CUR files
979
980 - you can now add file format plugins to support new file formats
981
982 - add POD coverage tests
983
984 - setcolors() and addcolors() now accept color names and so on
985 instead of requiring Imager::Color objects.
986 http://rt.cpan.org/Ticket/Display.html?id=20056
987
988 - flood_fill() can now fill to a specified border color instead of
989 just to the area the same color as the seed.
990 http://rt.cpan.org/Ticket/Display.html?id=19618
991
992
993Bug fixes:
994
995 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
996 calculating the advance width.
997 http://rt.cpan.org/Public/Bug/Display.html?id=20554
998
999 - bounding_box for the T1 driver wasn't including leading and
1000 trailing spaces in the bounding box as the other drivers did, it also
1001 produced strange results for empty strings or strings containing only
1002 spaces
1003
1004 - when reading CMYK jpeg images they were being transferred to the
1005 image object as is, producing a four channel image. It only looked ok
1006 due to an old still unfixed Photoshop bug. We now convert from the
1007 inverted CMYK that photoshop (and Corel for example) produce into RGB.
1008 http://rt.cpan.org/Ticket/Display.html?id=20416
1009
1010 - reading a CYMK TIFF would result in a 4 channel image, reading any
1011 image with more than 4 channels (eg. RGB with 2 alpha channels) would
1012 result in an error.
1013 http://rt.cpan.org/Ticket/Display.html?id=20415
1014
1015 - added /usr/local/include to the default include search path, since
1016 we were already searching /usr/local/lib for libraries.
1017
1018And various minor fixes and documentation updates.
1019
1020
1021Imager 0.51 - 23 Apr 2006
1022===========
1023
1024 - fix a validation bug when processing JPEG EXIF data that can cause
1025 a crash
1026 http://rt.cpan.org/Public/Bug/Display.html?id=18496
1027
1028 - fix mis-processing of the src_maxx and src_maxy parameters of the
1029 paste() method
1030 http://rt.cpan.org/Public/Bug/Display.html?id=18712
1031
1032 - fix a problem in Imager's "smart" handling of the color parameter
1033 to various methods.
1034 http://rt.cpan.org/Public/Bug/Display.html?id=18561
1035
1036
1037Imager 0.50 - 29 Mar 2006
1038===========
1039
1040 - CRITICAL: fixes a segmentation fault from attempting to write a 2
1041 or 4 channel image to jpeg or a 2 channel image to tga where the
1042 output is an in-memeory buffer.
1043 http://rt.cpan.org/Public/Bug/Display.html?id=18397
1044
1045 - fixes an incorrect pointer parameter in the PNG code
1046 http://rt.cpan.org/Public/Bug/Display.html?id=18051
1047
1048 - skip Inline::C tests when building in a directory with spaces
1049 http://rt.cpan.org/Public/Bug/Display.html?id=18049