-
Notifications
You must be signed in to change notification settings - Fork 4
/
Changes
1824 lines (1288 loc) · 62 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Imager release history. Older releases can be found in Changes.old
Imager 0.94_01 - 2 Mar 2013
==============
- NOTE: possibly backward incompatible:
support reading from/writing to perl filehandes that aren't raw
files.
This allows Imager's I/O to honour handles with layers such as
gzip, scalar file handles or tied file handles.
This is backward incompatible in that previous Imager would simply
use fileno() to retrieve the fd for the file and call write(2) etc
on it directly.
https://rt.cpan.org/Ticket/Display.html?id=78843
- moved most of README to lib/Imager/Install.pod which should make it
more accessible to the "web" generation, also significantly updated
and re-worked it.
- updated README's for the separately distributed modules to refer to
Imager::Install, and that they need -dev versions of packages
https://rt.cpan.org/Ticket/Display.html?id=81265
- the JPEG test code now reports the compile-time library version
- avoid a possible compiler optimization issue on CentOS 5.9 i386 by
rearranging (and mildly optimizing) some code.
https://rt.cpan.org/Ticket/Display.html?id=83212
- fix a POD error in Imager::Fill (detected on new Pod-Simple)
https://rt.cpan.org/Ticket/Display.html?id=83434
- fix a broken link to Graphics::Magick
https://rt.cpan.org/Ticket/Display.html?id=82743
- drawing text to a channel with FT2 would draw with random coverage
due to an uninitialized alpha channel.
- marked the function pointer underlying the mm_log() API with the
correct gcc magic and fixed the resulting warnings.
- fixed some other compiler warnings
- Imager::Font::W32 now properly reports text drawing errors
https://rt.cpan.org/Ticket/Display.html?id=70098
- handle the Svf_UTF8 flag correctly on magic (eg. overloaded)
strings passed as text to draw(), bounding_box(), has_chars(),
glyph_names() (where supported) in each of the font drivers.
https://rt.cpan.org/Ticket/Display.html?id=83438 (partial)
Imager 0.94 - 15 Dec 2012
=========================
Variations on some of these changes were included in development
releases.
- improved thread safety
- the internal error stack and log file handle are now in a per-thread
context object
- JPEG now captures IPTC information in a thread-safe way
- avoid globals where possible for warning capture in libtiff
- use a mutex to avoid re-entering thread-unsafe giflib
- use a mutex to avoid re-entering thread-unsafe tifflib
- use a mutex to avoid re-entering thread-unsafe T1Lib
- use a library handle per thread for freetype 2.
- use an engine handle per thread for freetype 1.x.
- originally these changes broke ABI compatibility, this has been
restored.
- clarify the return value of getpixel();
https://rt.cpan.org/Ticket/Display.html?id=81198
- fixed a race condition in parallel testing for T1
- fixed a bug in handling yoff for untransformed image-based fills
- documentation improvements for Imager::Fill
- FT2: report the library version while testing.
Imager 0.93 - 15 Oct 2012
===========
Bug fixes:
- previously a transparency enabled GIF write (the default) would
always use a GIF89a header even if none of the images were
transparent.
- previously the probe step for freetype-config would fail on cygwin
- catch an invalid matrix parameter to convert() instead of crashing
https://rt.cpan.org/Ticket/Display.html?id=79922
- remove the 16-bit/sample limitation from the documentation for
setsamples(), it hasn't applied for many releases.
https://rt.cpan.org/Ticket/Display.html?id=79989
- don't copy setsamples() data parameter, it may be a large scalar
https://rt.cpan.org/Ticket/Display.html?id=79990
- clean up .dSYM directories generated performing probes on OS X
Mountain Lion.
- pass the --verbose command-line option through to Imager::Probe in
sub-module's Makefile.PLs
https://rt.cpan.org/Ticket/Display.html?id=75878
Enhancements:
- support for giflib 5.0. (5.0.1 and later)
https://rt.cpan.org/Ticket/Display.html?id=79029
The giflib API Imager uses doesn't have a mechanism to set the
header version in 5.0.0.
- update the GIF library probe code to check for the new giflib 5.0.1
EGifSetGifVersion() function, and to check for the giflib 4.2.0
uninitialized gif89 bug.
https://rt.cpan.org/Ticket/Display.html?id=79679
http://sourceforge.net/tracker/?func=detail&aid=3574283&group_id=102202&atid=631304
- avoid static variables when capturing IPTC data from JPEG files
- match Imager::Font;:T1's error message translations to those from
later versions of T1Lib.
- for libtiff versions that support extended warning handlers (3.8.0
or later), use them to avoid some global variables.
- note Image::ExifTool for better metadata support.
https://rt.cpan.org/Ticket/Display.html?id=79251
Imager 0.92 - 14 Aug 2012
===========
- giflib 4.2 eliminates the GIF_LIB_VERSION macro, handle that
correctly for both probing and runtime.
https://rt.cpan.org/Ticket/Display.html?id=77672
- allow building JPEG/imexif.c on C89 compilers.
- allow building GIF/imgif.c on C89 compilers.
Imager 0.91 - 4 Jun 2012
===========
Bug fixes:
- The size of rotated images is no longer rounded up so aggressively.
Added rounding to the linear interpolation done for rotate() and
matrix_transform() for 1 and 3 channel 8-bit images.
Adjusted the two tranlate matrices used to build the final rotation
matrix to use the distance between the outlier pixels rather than
the pixel dimensions (ie. dimension-1).
With all of this the output of rotate(degrees => 270) on an 8-bit
image exactly matches the output of rotate(right => 270).
https://rt.cpan.org/Ticket/Display.html?id=77063
Other changes:
- eliminate the old IIM_new(), IIM_DESTROY() names from Imager's
internals, those names only matter for the XS interface.
- improve error reporting when PERL_INITIALIZE_IMAGER_CALLBACKS finds
the API level compiled into a loadable module such as
Imager::File::GIF doesn't match that of Imager. Previously it
could be difficult to determine exactly which module was failing to
load.
https://rt.cpan.org/Ticket/Display.html?id=77173
- added Imager->check_file_limits() as an interface to the
i_int_check_image_file_limits() API.
- Imager->set_file_limits(reset => 1) now resets the limits to the
defaults rather than setting them all to unlimited.
- wrote a brief security note as Imager::Security
https://rt.cpan.org/Ticket/Display.html?id=68910
Imager 0.90 - 30 Apr 2012
===========
Bug fixes:
- Imager::Test::is_imaged() attempted to process an "epsilon"
parameter but the prototype didn't allow for the extra parameter.
Corrected the prototype.
- when downconverting samples (eg. from floating point to 8 bit)
Imager now rounds the sample value rather than attempting to
allocate input values over output values equally. The old
behaviour had the probably surprising effect of converting a
floating point 2.1/255.0 into an 8-bit 3 rather than the expected
2.
This may result in slightly different 8 or 16-bit output images.
- BI_BITFIELD BMP images were handled incorrectly, both in
incorrectly calculating the space required for the masks and in
processing the image data itself.
https://rt.cpan.org/Ticket/Display.html?id=76736
- some odd width BMP BI_RLE4 images use run lengths that run one off
the edge of the image. Imager now allows this, discarding the
extra column.
- odd length RLE4 runs in BMP images were decoded incorrectly.
- pkg-config could sometimes return a library that was in a directory
EU::MM / $Config{libpth} doesn't know about, but the compiler did.
If no -L is included in the pkg-config library information check if
EU::MM can find the library, and if not, search our configured
directories and insert that into the library flags.
https://rt.cpan.org/Ticket/Display.html?id=75869
- Imager::Probe can now probe for libraries with dependent libraries,
common for static linking, eg. libpng requires libz.
https://rt.cpan.org/Ticket/Display.html?id=74043
- libpng 1.5 specific probes were looking for libpng 1.4 filenames.
- added alternative probe configurations that try to link libz, to
handle a statically linked libpng.
https://rt.cpan.org/Ticket/Display.html?id=74043
- if a probe includes testcode, Imager::Probe now checks that code as
part of the process of checking each configuration rather than as a
post test of the found configuration. This allows alternate
configurations to be checked if a matching but non-working
configuration is found.
https://rt.cpan.org/Ticket/Display.html?id=74043
Other changes:
- when reading or writing images via callbacks, the default callbacks
now push an error message indicating that a required callback was
called but not supplied.
https://rt.cpan.org/Ticket/Display.html?id=76782
- clarify which callbacks are required for reading and writing TIFF
images.
- improve logging for creation of callback I/O layers.
- a little more documentation for Imager::Probe.
- the i_get_file_background() and i_get_file_backgroundf() APIs now
return int to indicate whether the i_background tag was found.
- PNG rework
- improve error reporting
- add png_interlace, png_bits tags
- read paletted images as paletted images, including transparency
- read 1 bit greyscale images as a type suitable for other file
handlers to write as bilevel
- read 16 bit/sample PNG as 16-bit/sample Imager images
- write "bilevel" paletted images as 1 bit grayscale images
- write paletted images as paletted images
- write 16-bit (or higher)/sample images as 16-bit/sample PNG
images
- improved metadata support
https://rt.cpan.org/Ticket/Display.html?id=29268
Imager 0.89 - 18 Mar 2012
===========
Bug fixes:
- getpixel(..., type => "float") and the API i_gpixf() have been
broken on paletted images since they were implemented.
https://rt.cpan.org/Ticket/Display.html?id=75258
Other changes:
- links in the METHOD INDEX now point at the method documentation
rather than the heading you can find them under.
https://rt.cpan.org/Ticket/Display.html?id=71495
- Imager (and the bundled dynamic modules) no longer fallback to
using DynaLoader if loading via XSLoader fails.
For the bundled modules this could hide useful error messages.
https://rt.cpan.org/Ticket/Display.html?id=75560
- IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
buffer in the array of allocations, but just stores the filename
pointer and line number.
https://rt.cpan.org/Ticket/Display.html?id=70388
Imager 0.88 - 22 Feb 2012
===========
- describe how to build libgif etc on OS X in such a way as to be
compatible with a fat binary perl (such as the system perl), in
README.
https://rt.cpan.org/Ticket/Display.html?id=73371
- update the change notes for 0.77_01 to indicate that libungif
support was removed.
- add some other imaging modules to SEE ALSO
https://rt.cpan.org/Ticket/Display.html?id=73906
- note that the generator of the apparently non-DFSG-free postscript
in MMOne.pfb is a Debian package.
- setsamples() is now a true complement to getsamples() - it can
write 8-bit or floating point samples from a scalar or array
reference. This adds i_psamp() and i_psampf() to the C level API.
- the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
changed to make better use of the typemap, but these aren't part of
the perl level API anyway. There were no changes to the C level
interfaces to these functions.
- getpixel() and setpixel() now accept a mix of scalar and array
references for the x and y parameters, and unequal array lengths is
no longer an error.
https://rt.cpan.org/Ticket/Display.html?id=73697
Bug fixes:
- correctly calculate the size of a rotated image
https://rt.cpan.org/Ticket/Display.html?id=69261
- fix incorrect rounding of color values for matrix_transform() and
rotate().
https://rt.cpan.org/Ticket/Display.html?id=69261
- Win32 text output is now done in normal combine mode, the alpha
component of the color is now significant.
https://rt.cpan.org/Ticket/Display.html?id=70014
- remove long unused gif case from read()
https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
- the getsamples() target parameter was being treated as a hashref
when it's meant to be an array reference.
https://rt.cpan.org/Ticket/Display.html?id=74882
- getpixel() and setpixel() now returns an empty list when invalid
parameters are supplied.
Invalid values for type now result in an error for getpixel().
https://rt.cpan.org/Ticket/Display.html?id=73697
Imager 0.87 - 03 Jan 2012
===========
- document the return value of the filter() method.
https://rt.cpan.org/Ticket/Display.html?id=72369
- document i_gsamp_bits() and i_psamp_bits().
https://rt.cpan.org/Ticket/Display.html?id=68815
- properly increment the Imager::Matrix2d $VERSION.
- actually include the Imager::Test tests in the dist
- correctly read and write 256x256 pixel ICO files
https://rt.cpan.org/Ticket/Display.html?id=69599
- make the error message from read() or read_multi() when they can't
identify the file type match reality.
https://rt.cpan.org/Ticket/Display.html?id=72475
- read() now uses $FORMATGUESS if it can't determine the file type
based on the file header, to match read_multi().
- re-work and add tests for def_guess_type(). def_guess_type() no
longer returns any random file extension as the file type.
- add gray4, gray16 and gray as presets for make_colors.
https://rt.cpan.org/Ticket/Display.html?id=67911
- add make_palette() method that produces a palette from one or more
images.
- fix the Imager dependency for the separately distributed font
drivers.
https://rt.cpan.org/Ticket/Display.html?id=72643
- fix i_render_color() to properly draw in "normal" mode - ie. when
writing to a 1 or 3 channel image the second or fourth channel of
the source color was being ignored, it is now significant.
https://rt.cpan.org/Ticket/Display.html?id=71564
Imager 0.86 - 31 Oct 2011
===========
- improve error reporting for W32 tests
Imager 0.85_02 - 24 Oct 2011
==============
Bug fixes:
- eliminate unused i_gif_opts type (clean-up)
https://rt.cpan.org/Ticket/Display.html?id=69245
- fix combine=0 fill color anti-aliasing on the double/sample path
https://rt.cpan.org/Ticket/Display.html?id=71309
- make default text color non-transparent
https://rt.cpan.org/Ticket/Display.html?id=71469
- apply the last of the Debian unforwarded spelling fixes
https://rt.cpan.org/Ticket/Display.html?id=70656
- the log() method used its message parameter as a C level format
string.
https://rt.cpan.org/Ticket/Display.html?id=71653
- provide our own STRLEN typemap entry for older perls.
https://rt.cpan.org/Ticket/Display.html?id=71641
- add extra ppport.h configuration to support older perls.
- depend on Scalar::Util, since we use it and older perls don't have
it.
- add overloaded eq to Imager::Matrix2d, since older perls don't seem
to synthesize it from overloaded "".
- use T1_StrError() for error messages on modern libt1
https://rt.cpan.org/Ticket/Display.html?id=69879
- actually load the font rather than just adding it to the catalog on
creation.
- Imager::Font->new now produces better error messages for the T1
engine.
- the font has_chars() method now returns perl's true and false
values in list context rather than integers, which should be more
efficient.
https://rt.cpan.org/Ticket/Display.html?id=69158
- the btm data structure used by the flood_fill code is now
initialized more efficiently.
https://rt.cpan.org/Ticket/Display.html?id=68994
- updated the Thanks list in README
https://rt.cpan.org/Ticket/Display.html?id=71607
- check there's at least one coefficient for the convolution filter
https://rt.cpan.org/Ticket/Display.html?id=68993
- make the APIRef synopsis ordering consistent, older versions of
perl could order it differently.
https://rt.cpan.org/Ticket/Display.html?id=71675
- we rely on Config.pm's d_vsnprintf as to whether we use
vsnprintf/snprintf, which is defined in the Win32 Config.pm even
though it only has _ prefixed versions of these. Define our own
prefixed names on Win32.
https://rt.cpan.org/Ticket/Display.html?id=71642
- fix library detection with MSVC
- search a few more library directories, so EU::MM doesn't discard
them. Hopefully fixes:
https://rt.cpan.org/Ticket/Display.html?id=71643
Imager 0.85_01 - 10 Oct 2011
==============
- add simple tests for the Imager::Test test_image generators
- io_glue I/O buffering re-work:
- reorganize io_glue to do it's own buffering by default
- the unbuffered functions are available as i_io_raw_read() (or
raw_read() from perl) etc but are not recommended for typical
use.
- use the new i_io_peekn() when checking for file magic to avoid
seek, allowing Imager to detect the file type and read the file
from an unseekable stream (for formats that don't use random
access)
- added several new I/O layer API functions.
- fix the TGA performance problem, most noticably on Win32
https://rt.cpan.org/Ticket/Display.html?id=70037
- TIFF now uses wrapper functions of the correct types to avoid casts
https://rt.cpan.org/Ticket/Display.html?id=69912
- the callback IO object did its own buffering, controlled by the
maxbuffer parameter supplied to the read() and write() methods.
This buffering has been removed, to avoid redundancy with the
common io_glue buffering. This also avoids a bug in that code
which could rarely pass a zero length to the read callback and
then panic about the result.
- the callback IO object now tests the result of calling the close
callback, which should return true for success.
- the PNM reader did its own buffering. This buffering has been
removed to avoid redundancy with the common io_glue buffering.
- previously the read handlers for fd and callback I/O layers would
call the underlying interface (POSIX read or your supplied callback)
until it filled the buffer. It now only makes one call.
- added public constructors for I/O layer objects (see Imager::IO)
- all core file handlers now use the i_io_foo() wrappers to gain
access to buffered I/O rather than calling the I/O layer
callbacks directly.
- all core file handlers now check for error on close.
- Backward compatibility: if you hava custom file handlers, you can
use i_io_write() etc since they're available as macros in older
versions of Imager.
- eliminate the final remnants of io_glue_commit_types().
- bump IMAGER_API_VERSION, since the above may break assumptions.
- removed the long unused i_gen_reader() and i_gen_writer() utility
functions.
Imager 0.85 - 29 Aug 2011
===========
The main changes in the release versus 0.84 are:
- on 64-bit systems, 64-bit types are consistently used for image
dimensions and co-ordinated, and for memory block sizes.
- handle IFD loops in TIFF files correctly. Previously this would
lead to an infinite loop.
Bug fixes:
- fix the link in the getheight() entry in the method index
Imager 0.84_02 - 22 Aug 2011
==============
Development release, this will become 0.85 if CPAN testers is
favourable.
Bug fixes:
- the image file limits set by set_file_limits() weren't being
checked when reading TIFF files.
https://rt.cpan.org/Ticket/Display.html?id=69915
- Provide more information about file format module load errors on a
failed image file read() or write().
https://rt.cpan.org/Ticket/Display.html?id=69194
- use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
through TIFF images, since it checks for IFD loops.
https://rt.cpan.org/Ticket/Display.html?id=69914
- don't leak memory when out of range palette indexes are supplied to
setscanline().
https://rt.cpan.org/Ticket/Display.html?id=69242
- require a later version of CPAN::Meta to ensure JSON::PP and
CPAN::Meta::YAML are available.
https://rt.cpan.org/Ticket/Display.html?id=69008
- hoist the per-line calculations for the flines implementations, and
modernize the tests a bit.
https://rt.cpan.org/Ticket/Display.html?id=70126
- detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
them when available.
https://rt.cpan.org/Ticket/Display.html?id=69147
- if t1lib failed to reinitialize it would be left as marked
initialized.
https://rt.cpan.org/Ticket/Display.html?id=69877
- update the bundled (and still modified) Devel::CheckLib
https://rt.cpan.org/Ticket/Display.html?id=69170
Imager 0.84_01 - 8 Aug 2011
==============
Development release as a sanity check for the types re-work.
Massive types re-work:
- the type used internally for pixel co-ordinates and image sizes is
now 64-bit on 64-bit platforms (at least sane ones).
- size_t is now used consistently for memory block sizes.
- since this changes the binary interface, the Imager API version has
been incremented. Any module that uses the API will need to be
rebuilt. In most cases that will be enough, but calls to any APIs
that take a pointer to image sizes may need source changes.
- you should be able to create very large images on 64-bit systems,
if you have enough memory. Successfully created a 32768 x 49192 x
3 channel image, filled with a tiled image and scaled it. The
unscaled image was also successfully saved to a JPEG.
- check the image size before attempting to write BMP, GIF, JPEG,
PNG, SGI, TGA, TIFF images.
- correctly handle reading TGA images over 32767 pixels wide or tall.
Incidental changes:
- the gif_left and gif_top tags are now clamped to non-negative
values when writing a GIF image.
- removed dead callback read/write code
The default maximum memory size when reading files is now 1G.
Imager 0.84 - 20 Jun 2011
===========
- Imager no longer inherits from Exporter (unless you're running an
old, old perl.
- Imager can now write progressive JPEGs (it could always read them).
https://rt.cpan.org/Ticket/Display.html?id=68691
Bug fixes:
- re-work, document and test Imager's logging facility.
https://rt.cpan.org/Ticket/Display.html?id=65227
- fix META.yml testing and the generated META.yml
https://rt.cpan.org/Ticket/Display.html?id=65235
- test and add error reporting to to_*() family methods
- add to_rgb_double() method.
https://rt.cpan.org/Ticket/Display.html?id=65101
- Imager no longer exports anything by default
https://rt.cpan.org/Ticket/Display.html?id=65228
- convert colors to grayscale if the supplied (or generated) palette
contains only grays when performing error diffusion color
translation.
https://rt.cpan.org/Ticket/Display.html?id=68508
- writing a paletted image to GIF wouldn't always use the colors
supplied (or generated, eg. via make_colors => "mono"), which was
confusing at best.
https://rt.cpan.org/Ticket/Display.html?id=67912
- replace (imager|tony)@imager.perl.org in the doc, since I don't
plan to continue receiving mail at that address.
https://rt.cpan.org/Ticket/Display.html?id=68591
Imager 0.83 - 21 May 2011
===========
Bug fixes:
- diag() the error message on failure for some TIFF tests that are
failing on a Solaris smoker.
http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
Imager 0.82_01 - 17 May 2011
==============
Dev release, in case the compose tests are too sensitive.
Bug fixes:
- Imager::Font::T1 incorrectly checked for absolute filename under
Win32. Thanks to kmx for the report and fix.
https://rt.cpan.org/Ticket/Display.html?id=67963
- compose() with the target, source or mask position off the top or
left of the target image didn't clip the source image correctly.
https://rt.cpan.org/Ticket/Display.html?id=67220
- compose() now returns a useful error message on a non-positive
opacity.
- compose.im now at 100% test coverage. (As opposed to, umm, much,
much less.)
Imager 0.82 - 14 Mar 2011
===========
Bug fixes:
- eliminate calls to i_has_format() from the test suite, since it's
no longer a useful way to check for file format support. Eliminate
i_has_format() from the functions exposed via XS.
https://rt.cpan.org/Ticket/Display.html?id=65863
- eliminate calls to note(), which isn't in the (very old) version of
Test::More we have as a pre-requisite. note() is modern enough
that I don't feel a need to require a Test::More upgrade for it.
https://rt.cpan.org/Ticket/Display.html?id=65864
- skip the threads tests on Test::More 2.00_*
https://rt.cpan.org/Ticket/Display.html?id=65812
- add an (unshipped) test to check Imager's internal POD links
https://rt.cpan.org/Ticket/Display.html?id=65749
- improve the library detection summary
https://rt.cpan.org/Ticket/Display.html?id=9675
- increase the version of Imager::Font::Type1 so that upgrades don't
downgrade the version in this file.
https://rt.cpan.org/Ticket/Display.html?id=66250
- if we see an -rpath (or -R) option in $Config{lddlflags} supply
that option for the directories that would normally go in
LD_RUN_PATH. Typically an explicit -rpath overrides LD_RUN_PATH.
https://rt.cpan.org/Ticket/Display.html?id=65955
Imager 0.81 - 14 Feb 2011
===========
- added coverage tests for masked images (maskimg.c @100% test coverage)
- add hsv() method to Imager::Color
Thanks to Leolo (Philip Gwyn)
https://rt.cpan.org/Ticket/Display.html?id=65385
- split libt1 Type 1 font support into a sub-module
https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
- add a preload() class method for use in forking servers, and to
work around limitations in PAR.
https://rt.cpan.org/Ticket/Display.html?id=65665
Bug fixes:
- paletted writes to a masked image are now masked correctly.
Revealed by new coverage tests.
- update the filter plugin documentation.
https://rt.cpan.org/Ticket/Display.html?id=56513
- add the matrix() method to Imager::Matrix2d to allow creation of a
matrix with specified co-efficients. You can now multiple an
Imager::Matrix2d object by a 9 element array ref or a number.
https://rt.cpan.org/Ticket/Display.html?id=29938
- really fix loading TTF fonts with FT2 when FT1 isn't available.
Thanks to Leolo (Philip Gwyn)
https://rt.cpan.org/Ticket/Display.html?id=65386
https://rt.cpan.org/Ticket/Display.html?id=62855
- make sure each test script that needs testout/ creates it.
https://rt.cpan.org/Ticket/Display.html?id=65088
- handle a slightly different warning from libtiff 4.x
https://rt.cpan.org/Ticket/Display.html?id=65268
- the sat transform2() op returned an incorrect saturation.
https://rt.cpan.org/Ticket/Display.html?id=65391
Imager 0.80 - 17 Jan 2011
===========
- added coverage tests for Imager::Fountain and Imager::Color::Float
- Imager is now maintained in git
http://git.imager.perl.org/imager.git
git://git.imager.perl.org/imager.git
Bug fixes:
- images with an translucent alpha channel were not scaled correctly
by the default (qtype=normal) scaling method.
https://rt.cpan.org/Public/Bug/Display.html?id=63922
- Imager::Color::Float now translates "#FFFFFF" to white instead of
just a little darker.
- make the default color map build algorithm "mediancut". This
changes the default color map builder for writing GIFs back to what
it was in 0.77, reverting a performance regression.
https://rt.cpan.org/Ticket/Display.html?id=64785
- handle failure to create a masked image correctly
Imager 0.79 - 10 Dec 2010
===========
- add Imager::Test to the POD coverage tests and document the missing
functions.
- the convert() method now optimizes the case where all output
channels are either 0, sourced from a single input channel or 1.
This significantly speeds up presets like "addalpha", "green".
https://rt.cpan.org/Ticket/Display.html?id=51254
- add wiggle.pl sample, as suggested by Dan Oppenheim.
- add the combine() method to combine channels from multiple source
images into a new image
https://rt.cpan.org/Ticket/Display.html?id=11872
Bug fixes:
- treat the co-efficients for convert() as doubles instead of floats.
- If a higher (earlier) priority font handler failed to load, that
would crash preventing loading of later font handlers.
https://rt.cpan.org/Ticket/Display.html?id=62855
- parse defines from the options returned by pkg-config --cflags
https://rt.cpan.org/Ticket/Display.html?id=63223
- a regen of the MANIFEST revealed that GIF and FT2 tests weren't
included in the tarball. They are now included.
Imager 0.78 - 4 Oct 2010
===========
Bug fixes:
- don't access deprecated members of the png_structp.
https://rt.cpan.org/Ticket/Display.html?id=60242
- document that using color objects is faster than supplying colors
by name, etc.
https://rt.cpan.org/Ticket/Display.html?id=61047
- Imager::Probe now accepts array references for incpath and libpath.
https://rt.cpan.org/Ticket/Display.html?id=60244
Imager 0.77_02 - 27 Sep 2010
==============
- moved Win32, FreeType 2 font support into sub-modules.
https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
Uses Imager::Probe now.
https://rt.cpan.org/Public/Bug/Display.html?id=61328
- tested successfully with jpeg-8b
https://rt.cpan.org/Ticket/Display.html?id=60221
Bug fixes:
- from _01: look for missing file support test files in the right
places.
- flood_fill() wouldn't fill the right side of a single scan-line
fill area.
Thanks to Nicolas Roggli for reporting this.
- flood_fill wouldn't fill to the left edge of the image if the
starting line didn't reach the left edge.
Thanks to Nicolas Roggli for reporting this.
Imager 0.77_01 - 13 Sep 2010
==============
- add each library-directory/pkgconfig/ to the pkg-config search path
in Imager::Probe.
Thanks to Justin Davis.
https://rt.cpan.org/Ticket/Display.html?id=60491
- moved GIF, TIFF, JPEG file handling code into sub-modules in
preparation for separate distribution.
https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
Note: this removed support for libungif from Imager.
- optimize filled box drawing (color, not fill)
Bug fixes:
- Imager::Probe was calling ExtUtils::Liblist to initialize
LD_RUN_PATH supplying an undefined value rather than the found
directory. Thanks to Justin Davis.
https://rt.cpan.org/Ticket/Display.html?id=60491
- only prepend ./ to font filenames when passing them to T1Lib and
then only when it would use its search mechanisms.
https://rt.cpan.org/Ticket/Display.html?id=60509
- fix the cache check for the X rgb.txt loader. This is typically
used for color translation on Unix-like systems, and the fix
improves performance of supplying colors by name by about 80 times.
Test code that managed 3400 10x10 pixel boxes/second sped up to
25700 boxes/second.
- clarify that Imager doesn't write EXIF metadata to images.
https://rt.cpan.org/Ticket/Display.html?id=60637
- Imager::Probe can now search subdirectories under its include path.
Used by the PNG Makefile.PL to find headers and libraries when they
aren't in the base directory, as in cygwin.
https://rt.cpan.org/Ticket/Display.html?id=60635
Imager 0.77 - 11 Aug 2010
===========
I don't want Imager::File::PNG indexed as part of Imager, but forgot
to update the META.yml before updating the version.
- don't index Imager::File::PNG as part of Imager
- add resources to META.yml
Imager 0.76 - not released
===========
Bug fixes:
- the align_string() method would ignore a string of "0" due to a
mis-use of C< ||= >.
Thanks to Maurice Height for reporting this.
https://rt.cpan.org/Ticket/Display.html?id=60199
Imager 0.75_03 - 09 Aug 2010
==============
Bug fixes:
- read_types() and write_types() would include png when it wasn't
available due to a problem with the %formats tie
- handle dependent libraries correctly (eg -lpng requiring -lz) in
the code run phase of library probing.
Imager 0.75_02 - 07 Aug 2010
==============
Bug fixes:
- add file missing from MANIFEST, which was causing TIFF failures.
Imager 0.75_01 - 06 Aug 2010
==============
Test release for the new PNG probe.
- added the ability to read multiple-image PNM files.
Note that unlike the pbm/pgm/ppm specification this accepts mixed
format files and allows white space padding between files.
Thanks to Philip Gwyn (Leolo) for this patch.
- moved the PNG file handling code into a sub-module in preparation
for separate distribution.
https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
Also helps avoid complications from -I/-L compile/link options from
other libraries.
Bugs:
- Imager->new(data => $data) didn't try to process image file data in
$data
https://rt.cpan.org/Ticket/Display.html?id=58761
- t/t50basicoo.t no longer depends on the other tests to generate its
input files.
https://rt.cpan.org/Ticket/Display.html?id=9798
Also, it wasn't testing pnm (pnm vs ppm mix-up)
- update the documentation of hardinvert to match the change in 0.62.
https://rt.cpan.org/Ticket/Display.html?id=59785
- added hardinvertall filter which also inverts the alpha channel
(sorry for the mess)
- when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
the probe can find the library for the test run.
https://rt.cpan.org/Ticket/Display.html?id=57518
Imager 0.75 - 20 Jun 2010
===========
- use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
perls (not measured)
Bugs:
- an opacity fill based on a fountain fill would segfault when
filling an 8-bit/sample image.
- merge thickline branch polygon fix
https://rt.cpan.org/Ticket/Display.html?id=43518
Imager 0.74 - 7 May 2010
===========
Bug fixes:
- read_multi() didn't handle a missing file format library correctly,
aborting on failing to call i_readgif_multi_wiol() or
i_readtiff_multi_wiol().
- fix spelling errors patched by Debian