add i_gsamp_bg/i_gsampf_bg functions, sample based versions of
[imager.git] / Changes
CommitLineData
7623d340
TC
1Imager release history. Older releases can be found in Changes.old
2
33b0ffa6
TC
3Imager 0.63 - unreleased
4===========
5
d1555273
TC
6 - the font libraries are now only initialized when needed.
7 http://rt.cpan.org/Ticket/Display.html?id=28825
8
9b1ec2b8
TC
9 - moved the imtoc.perl code into Imager::Preprocess
10
11 - paste() and rubthrough() now adapt the source image data to the
12 destination, so you can now safely paste/rubthrough from greyscale
13 images to color images or back, or from alpha channel images to
14 noalpha channels or back.
15 https://rt.cpan.org/Ticket/Display.html?id=30908
16
17 - rubthrough() now falls back to pasting when the source doesn't have
18 an alpha channel. This effectively treats the source as having a
19 max alpha channel, the right thing to do.
20 http://rt.cpan.org/Ticket/Display.html?id=29944
21
22 - re-worked most of the area filling code to use a common set of
23 functions when filling.
24 Corrected normal combine mode.
25 Rewrote most of the combine modes to match the way the SVG draft
26 defines them with respect to a translucent source and destination.
27 Added tests for translucent source and destination.
28 Added tests to check 8-bit/sample and double/sample combines work
29 similarly.
30 https://rt.cpan.org/Ticket/Display.html?id=29879
31
c5a24cca
TC
32 - some TGA images weren't being detected correctly as TGA images
33 https://rt.cpan.org/Ticket/Display.html?id=32925
34
35 - handling of the left-over bit for 16-bit/pixel TGA images has been
36 changed to match the behaviour of the GIMP. Previously the bit
37 being set was treated as an opaque pixel, but one user reported a
38 problem with loading such an image. I haven't been able to find any
39 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
40 I'll match it's behaviour. See issue 114913 in the GIMP's
41 bugzilla.
42 http://rt.cpan.org/Ticket/Display.html?id=32926
43
6e4af7d4
TC
44 - writing a 2 or 4 channel image to a JPEG will now write that image as
45 if composited against a background, black by default, overridable
46 with the i_background tag/parameter.
47 https://rt.cpan.org/Ticket/Display.html?id=29876
48
fa90de94
TC
49 - writing a 2 or 4 channel image to a PGM/PPM will now write that
50 image as if composited against a background, black by default,
51 overridable with the i_background tag/parameter.
52 http://rt.cpan.org/Ticket/Display.html?id=30074
53
33b0ffa6
TC
54Bug fixes:
55
56 - Imager::Matrix2d->translate() now only requires one of the x or y
57 parameters.
58 http://rt.cpan.org/Ticket/Display.html?id=29937
59
5daa9d34 60Imager 0.62 - 10 December 2007
ac8138b0
TC
61===========
62
d8e0c3ba
TC
63 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
64 to /path under your home directory.
65 http://rt.cpan.org/Ticket/Display.html?id=29484
66
50ff958e
TC
67 - the old dynaload code used Mach API functions to load dynamic
68 libraries on Mac OS X. These APIs have been deprecated in OS X
69 10.5 and were causing some build problems.
70 So henceforth Imager uses the dlopen() family of functions, and you
71 will need version 10.3 or later of OS X.
72
3309187a
TC
73 - added the det() function to the transform2() engine.
74 added the sample quad_to_square.pl
75 Courtesy Richard Fairhurst.
76 http://rt.cpan.org/Ticket/Display.html?id=31244
77
ac8138b0
TC
78Bug fixes:
79
80 - samples/gifscale.pl sourced the base value for gif_top from
81 gif_left.
82 Thanks to Eleneldil G. Arilou for pointing this out.
83
678a9a65
TC
84 - t/t82inline.t no longer loads B at runtime, to work around a bug
85 in some 5.005_0[45] installations.
86 http://rt.cpan.org/Ticket/Display.html?id=30508
87
88 - work around Module::Depends::Intrusive bug #21229
89 http://rt.cpan.org/Ticket/Display.html?id=30520
ac8138b0 90
bea65b1f
TC
91 - the hardinvert filter no-longer inverts the alpha channel.
92 http://rt.cpan.org/Ticket/Display.html?id=30002
93
94 - the hardinvert filter now supports large samples
95
b7809486 96Imager 0.61_02 - 28 November 2007
f74e6efc 97==============
874c55db 98
bd8052a6
TC
99 - major TIFF support re-work
100 http://rt.cpan.org/Ticket/Display.html?id=20329
101
102 - added a C level image interface for accessing samples from 1-32
103 bits, exposed this at the perl level in getsamples()
104
105 - the conv filter now works at floating point precision for high bit
106 images
107
108 - added is_bilevel method to test whether an image should be written as
109 a bilevel image if the image format supports it.
110
111 - added -log-stderr as an Imager import list option
112
113 - added some important types to Imager::APIRef
114
115 - added test_image_double() to Imager::Test
116
874c55db
TC
117Bug fixes:
118
119 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
120 segments
121
122 - the scale() method with qtype mixing now handles images with an
123 alpha channel correctly.
124
8d17eae9
TC
125 - fixed a broken link from the "animated GIF" entry in the concept index.
126 Thanks to Slaven Rezic.
127 http://rt.cpan.org/Ticket/Display.html?id=30889
128
d3bf4eaf
TC
129 - on some perl's the infix expression parser test would fail due to
130 actions in the grammar returning false. Made sure all actions return
131 a true value.
8b96ad6b
TC
132 Thanks to Richard Fairhurst for spending a lot of time in tracking
133 down this problem.
680c329d 134 http://rt.cpan.org/Public/Bug/Display.html?id=29562
d3bf4eaf 135
d06f6707 136Imager 0.61 - 5 November 2007
1cfa190e
TC
137===========
138
139 - added samples/gifscale.pl, which adjusts the screen size/position tags
140 when scaling an animated gif
141 http://rt.cpan.org/Ticket/Display.html?id=27591
142
8a2cd317
TC
143Bug fixes:
144
e7ac18bd
TC
145 - correct handling of sz in matrix_transform() - this should allow
146 perspective type transformations to work now.
147 http://rt.cpan.org/Ticket/Display.html?id=29936
148
8a2cd317
TC
149 - prevent a cast to integer warning on x64 builds in datatypes.c
150 also fixed some other type warnings
151 https://rt.cpan.org/Ticket/Display.html?id=30204
152
9188b23e
TC
153 - some sub-directory tests depended on files produced by the parent
154 directory tests
155 http://rt.cpan.org/Ticket/Display.html?id=30203
156
7febff1d
TC
157 - Imager::Font::Wrap doesn't correctly set savepos
158 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
159 http://rt.cpan.org/Ticket/Display.html?id=29771
160
76411e99
TC
161 - test 171 in t/t01introvert.t was failing on perls configured to
162 use long double.
163 http://rt.cpan.org/Ticket/Display.html?id=29413
164
3f29de50
TC
165 - the code for the transform2() uminus operator was missing a break.
166 Added tests for better code coverage of the ops.
167 http://rt.cpan.org/Ticket/Display.html?id=29296
168
ed107438
TC
169 - the SGI RLE compression code could overflow its compression buffer
170 http://rt.cpan.org/Ticket/Display.html?id=30334
171
172 - the 32-bit output function used by the SGI code only handled values
173 under 0x10000. This was most noticable when writing large RLE images.
174 http://rt.cpan.org/Ticket/Display.html?id=30335
175
c7481ae1
TC
176 - validate chan_count for chans == NULL for each of the i_gsamp()
177 implementations.
178 http://rt.cpan.org/Ticket/Display.html?id=28985
179
ff37fc3f
TC
180 - attempt to work around the test failure at
181 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
182 http://rt.cpan.org/Ticket/Display.html?id=29562
183
f245645a
TC
184 - improve the error messages produced when attempting to read or write
185 an unknown image file format.
186 http://rt.cpan.org/Ticket/Display.html?id=30103
187
333d7485
TC
188 - improve the transform2() documentation
189 http://rt.cpan.org/Ticket/Display.html?id=29267
190
3b115720
TC
191 - correctly generate the author key in META.yml
192 http://rt.cpan.org/Ticket/Display.html?id=30377
193
13c9a303
TC
194 - correctly blend a rotated (or matrix_transformed()) image when
195 performing interpolation in the presence of an alpha channel.
8a071022
TC
196 Also corrected the centring of the rotated image on the output
197 image.
13c9a303 198
0e622083 199Imager 0.60 - 30 August 2007
bcff4dd9
TC
200===========
201
d5477d3d
TC
202 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
203 now has full SGI RGB image format, including RLE and 16-bit/sample
204 images.
205 https://rt.cpan.org/Ticket/Display.html?id=8666
206
207 - logging functions are now available in the API
208
a60905e4
TC
209 - applied Gabriel Vasseur's patch
210 added documentation, further tests, and support for greyscale images
211 Obviously problems are my fault :)
212 https://rt.cpan.org/Ticket/Display.html?id=28142
213
413dc198
TC
214 - the mask for ICO/CUR images is now applied as an alpha channel to
215 the returned image. For the old behaviour, supply ico_masked => 0
216 to read() or read_multi(). This should be less confusing when
217 using Imager as a general image processor.
218 https://rt.cpan.org/Ticket/Display.html?id=29001
219
bcff4dd9
TC
220Bug fixes:
221
222 - in some cases it's possible for giflib/libungif to return color
223 indexes outside the range of colors defined by the image's palette.
224 We now expand the palette to match the indexes used.
225 Thanks to Gabriel Vasseur for reporting this.
226
02576e8d
TC
227 - fixed various memory leaks that could occur when failing to read png,
228 jpeg, bmp or tga files.
229
b3aa972f
TC
230 - to avoid confusion, channels not present in the image are returned as
231 zero by getscanline(). This has no effect on the C level i_glin()
232 and i_glinf() API functions which continue to not set the unused
233 channels.
234
d5477d3d
TC
235 - the convert() method now returns an image of the same sample size as
236 the source image.
237 https://rt.cpan.org/Ticket/Display.html?id=28492
238
baa880ef
TC
239 - remove repeated text in Imager::Files
240 http://rt.cpan.org/Ticket/Display.html?id=27589
241
242 - be even more explicit that scale() and friends don't modify the source
243 image, but return a new image.
244 http://rt.cpan.org/Ticket/Display.html?id=28570
245
0561d49c
TC
246 - improve the error message from errstr() when you try to load a font
247 for which the driver hasn't been built in Imager.
248 http://rt.cpan.org/Ticket/Display.html?id=27571
249
d8a39ce0
TC
250 - transparency is now enabled by default when writing GIF images
251 http://rt.cpan.org/Ticket/Display.html?id=27615
252
5730d6e7
TC
253 - Imager would not load on Windows 98
254 http://rt.cpan.org/Ticket/Display.html?id=27653
255
b4996113 256Imager 0.59 - 14 June 2007
e6e94ab0
TC
257===========
258
259Bug fixes:
260
261 - fixes a regression introduced by the fixes for RT 11972
262 http://rt.cpan.org/Ticket/Display.html?id=27546
263
9fc9d0ca
TC
264 - cropping outside the image would return an Imager object with
265 no low-level image object, instead of returning false.
266 Fixed by: Philip Gwyn (Leolo)
267 http://rt.cpan.org/Ticket/Display.html?id=27509
268
7e7508dd
TC
269Imager 0.58 - 16 May 2007
270===========
271
272No significant changes from 0.57_01.
273
1970a2c7
TC
274Imager 0.57_01 - 11 May 2007
275==============
d034a178 276
f8e36694
TC
277 - added to_rgb16 to produce a 16-bit/sample version of an image
278
95b2bff4
TC
279 - improve freetype 1.x text output efficiency
280
d034a178
TC
281Bug fixes:
282
283 - search another place for rgb.txt, and check all the places
284 Imager::Color checks when deciding whether to skip testing it
285 http://rt.cpan.org/Ticket/Display.html?id=26064
286
73962964
TC
287 - use a convolution kernel size based on the stddev rather than a
288 fixed size when performing a gaussian blur
289 http://rt.cpan.org/Ticket/Display.html?id=25645
290
01b84320
TC
291 - document the difference() method's mindist parameter, and debug it.
292
7e7508dd 293 - put the Imager release number in the Inline::C generated code to
22f9ca48
TC
294 regenerate Inline code when a new release of Imager is installed.
295 http://rt.cpan.org/Ticket/Display.html?id=26278
296
fa16b6c6
TC
297 - fix rendering on alpha channel images for the FreeType 1.x driver.
298 http://rt.cpan.org/Ticket/Display.html?id=11972
299
4c84ccfb
TC
300 - fix rendering on alpha channel images for the T1lib driver.
301 http://rt.cpan.org/Ticket/Display.html?id=11972
302
1fe8316b
TC
303 - reworked library probing, we can now set more than one probe
304 function for a library. Disabled the default (non-freetype-config)
305 library probe and added an extra probe function that searches for
306 both ft2build.h and whatever it includes, and adds -I as needed.
307 Hopefully this will fix build problems like
308 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
309 http://rt.cpan.org/Ticket/Display.html?id=26086
310
bb5712de
TC
311Imager 0.57 - 30 Apr 2007
312===========
313
314This is a maintenence release fixing a security issue in Imager.
315
316 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
317 overflow in malloced memory. There will be further discussion of
318 this issue in the ticket below.
319 http://rt.cpan.org/Ticket/Display.html?id=26811
7e7508dd
TC
320 CVE-2007-2459 CVE-2007-2413
321 The descriptions at cve.mitre.org varied in quality, please see the
322 ticket at rt.cpan.org for a more accurate description of the issue.
bb5712de 323
d034a178 324Imager 0.56 - 1 Apr 2007
7623d340
TC
325===========
326
327 - added support for reading 16-bit/sample PGM/PPM images
328
329 - added support for writing 16-bit/sample PGM/PPM images
330
331 - improved performance of reading PBM/PGM/PPM images
332
333 - added support for writing PBM images if the image is paletted and
334 contains only black and white
335
336 - added a new make_colors value - "mono"
337
338 - switched from the svn log Changes to a manual Changes to reduce
339 noise
340
1225d272
TC
341 - new sample code - samples/flasher.pl
342
7623d340
TC
343Bug fixes:
344
345 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
346 was returning an image object with an extra reference, this
347 resulted in a memory leak.
348 http://rt.cpan.org/Ticket/Display.html?id=24992
349
350 - fix rendering on alpha channel images for the FreeType 2.x driver
351 http://rt.cpan.org/Ticket/Display.html?id=11972
352
353 - reading bmp files now consitently handles short reads. You can now
354 supply a parameter to treat a short read as successful and set
355 i_incomplete
356 http://rt.cpan.org/Ticket/Display.html?id=8426
357
358 - previously, reading ASCII PBM files required spaces between samples,
359 even though the format doesn't require that
360
1225d272
TC
361 - improved documentation of the unsharpmask filter (I hope)
362 http://rt.cpan.org/Ticket/Display.html?id=25531
363
364 - force flushing of the output from i_tt_dump_names() and test output
365 in t/t35ttfont.t to prevent output from being mixed up.
366 https://rt.cpan.org/Ticket/Display.html?id=24859
367
368 - rewrite a conditional expression as an if() to hopefully work around
369 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
370 https://rt.cpan.org/Ticket/Display.html?id=25561
371
372 - avoid Data::Dumper in regops.perl to support older releases of perl
373 https://rt.cpan.org/Ticket/Display.html?id=24391
374
7623d340
TC
375Imager 0.55 - 16 Dec 2006
376===========
377
378This is primarily a bug fix release.
379
380Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
381
382There is one new feature:
383
384 - the Win32 font driver now supports UTF8 (RT 22166)
385 http://www.cpanforum.com/threads/3276
386 http://rt.cpan.org/Ticket/Display.html?id=22166
387
388Several bugs were fixed:
389
390 - the string() method would not output the string "0"
391 http://rt.cpan.org/Public/Bug/Display.html?id=21770
392
393 - fills.c was failing to compile on Solaris 10 (compiler unknown)
394 http://rt.cpan.org/Public/Bug/Display.html?id=21944
395
396 - the gif_disposal and gif_user_input tags weren't being read from
397 the file correctly
398 http://rt.cpan.org/Public/Bug/Display.html?id=22192
399
400 - gif.c was failing to build under MSVC
401 http://rt.cpan.org/Ticket/Display.html?id=23922
402
403 - in some cases strings passed to the string() method were treated as
404 terminated by NUL (chr 0)
405 http://rt.cpan.org/Public/Bug/Display.html?id=21770
406
407 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
408 that's the default build name for zlib on Win32.
409 http://rt.cpan.org/Ticket/Display.html?id=23064
410
411 - search $Config{incpath} for headers too, which we should have been
412 doing all along.
413
414Win32 font driver fixes:
415
416 - the global descent value from bounding box was the wrong sign
417 http://www.cpanforum.com/threads/3276
418
419 - if the first or last glyph overflowed the left or right side of the
420 advance width they would be clipped
421
422
423Imager 0.54 - 14 Sep 2006
424===========
425
426This is primarily a feature release:
427
428 - a new qtype value 'mixing' has been added to the scale()
429 method. This is faster than 'normal', slower than 'preview'. This
430 is based on the method used by pnmscale, and seems to produce less
431 blurry results than normal.
432 http://rt.cpan.org/Public/Bug/Display.html?id=20677
433
434 - the rubthrough() method can now render onto images with an alpha
435 channel.
436 http://rt.cpan.org/Ticket/Display.html?id=20678
437
438 - the read_multi() method now falls back to calling doing a single
439 image read via the read() method and write_multi() will now fall
440 back to calling write() if a single image is supplied. This means
441 you can simply call the read_multi() or write_multi() functions
442 without having to check if the type is formatted by that method.
443 http://rt.cpan.org/Ticket/Display.html?id=19457
444 http://rt.cpan.org/Ticket/Display.html?id=19458
445
446 - the GIF loop extension can now be written. If you don't have
447 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
448 should upgrade.
449 http://rt.cpan.org/Ticket/Display.html?id=21185
450
451 - getscanline() and setscanline() can now read/write palette index
452 based data from/to the image for paletted images, by setting type to
453 'index'.
454 http://rt.cpan.org/Ticket/Display.html?id=20338
455
456 - we no longer hassle you to disable GIF support
457 http://rt.cpan.org/Ticket/Display.html?id=20687
458
459 - minor documentation fixes
460
461
462Imager 0.53 - 26 Jul 2006
463===========
464
465This is a bugfix release.
466
467Some test code was left in a code path not covered by the test
468suite. A test was added to cover this code path and the test code was
469removed.
470http://rt.cpan.org/Public/Bug/Display.html?id=20705
471
472
473Imager 0.52 - 25 Jul 2006
474===========
475
476This is primarily a feature release, but contains a fair few bug
477fixes, new features:
478
479 - ability to read and write MS Windows ICO and CUR files
480
481 - you can now add file format plugins to support new file formats
482
483 - add POD coverage tests
484
485 - setcolors() and addcolors() now accept color names and so on
486 instead of requiring Imager::Color objects.
487 http://rt.cpan.org/Ticket/Display.html?id=20056
488
489 - flood_fill() can now fill to a specified border color instead of
490 just to the area the same color as the seed.
491 http://rt.cpan.org/Ticket/Display.html?id=19618
492
493
494Bug fixes:
495
496 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
497 calculating the advance width.
498 http://rt.cpan.org/Public/Bug/Display.html?id=20554
499
500 - bounding_box for the T1 driver wasn't including leading and
501 trailing spaces in the bounding box as the other drivers did, it also
502 produced strange results for empty strings or strings containing only
503 spaces
504
505 - when reading CMYK jpeg images they were being transferred to the
506 image object as is, producing a four channel image. It only looked ok
507 due to an old still unfixed Photoshop bug. We now convert from the
508 inverted CMYK that photoshop (and Corel for example) produce into RGB.
509 http://rt.cpan.org/Ticket/Display.html?id=20416
510
511 - reading a CYMK TIFF would result in a 4 channel image, reading any
512 image with more than 4 channels (eg. RGB with 2 alpha channels) would
513 result in an error.
514 http://rt.cpan.org/Ticket/Display.html?id=20415
515
516 - added /usr/local/include to the default include search path, since
517 we were already searching /usr/local/lib for libraries.
518
519And various minor fixes and documentation updates.
520
521
522Imager 0.51 - 23 Apr 2006
523===========
524
525 - fix a validation bug when processing JPEG EXIF data that can cause
526 a crash
527 http://rt.cpan.org/Public/Bug/Display.html?id=18496
528
529 - fix mis-processing of the src_maxx and src_maxy parameters of the
530 paste() method
531 http://rt.cpan.org/Public/Bug/Display.html?id=18712
532
533 - fix a problem in Imager's "smart" handling of the color parameter
534 to various methods.
535 http://rt.cpan.org/Public/Bug/Display.html?id=18561
536
537
538Imager 0.50 - 29 Mar 2006
539===========
540
541 - CRITICAL: fixes a segmentation fault from attempting to write a 2
542 or 4 channel image to jpeg or a 2 channel image to tga where the
543 output is an in-memeory buffer.
544 http://rt.cpan.org/Public/Bug/Display.html?id=18397
545
546 - fixes an incorrect pointer parameter in the PNG code
547 http://rt.cpan.org/Public/Bug/Display.html?id=18051
548
549 - skip Inline::C tests when building in a directory with spaces
550 http://rt.cpan.org/Public/Bug/Display.html?id=18049