-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.2009
1711 lines (1140 loc) · 60.8 KB
/
ChangeLog.2009
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
2009-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/unix_port.c (MagickSpawnVP): Remove unneeded new line
character in error message format.
* Magick++/Makefile.am: Allow Magick++ to be built as a shared
library under MinGW and Cygwin. This requires a modern GCC in
order for C++ exceptions to work.
* utilities/tests/annotate.sh: MSYS is garbeling up draw command
so use a command file rather than using command line.
* coders/{fits.c,meta.c,locale.c}: Fix benign warnings noticed
under Cygwin 1.7.
* magick/{constitute.c,resource.c,utility.c}: Fix benign warnings
noticed under Cygwin 1.7.
2009-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/module.c (DestroyModuleInfo): If the Jasper library is
used, then we can't invoke lt_dlexit() because this unloads the
Jasper library and Jasper sometimes registers an atexit() cleanup
handler. Unfortunately, this may annoy memory leak checkers.
* coders/jp2.c: Defer Jasper initialization to point of use.
2009-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* wand/magick_wand.c (MagickCdlImage): New method to apply the ASC
CDL to an image.
(MagickHaldClutImage): New method to apply a Hald CLUT to an image.
2009-12-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/studio.h atof(), atoi(), and atol() are legacy functions
which might not be thread safe, might not enforce reasonable
limits, and should not be used for new code. So we implement them
via strtod() and strtol().
2009-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* wand/magick_wand.c (MagickGetImageBoundingBox): New method to
return the crop bounding box required to remove any solid-color
border from the image.
(MagickGetImageFuzz/MagickSetImageFuzz): New methods to get and
set the color comparison fuzz factor
* wand/pixel_wand.c (ClonePixelWand): New method to deep-copy an
existing pixel wand.
(ClonePixelWands): New method to deep-copy an array of existing
pixel wands.
* wand/magick_wand.c (MagickSetResolution): New method to set the
wand resolution. This one also works before the image has been
read (unlike MagickSetImageResolution()).
(MagickSetResolutionUnits): New method to set the wand resolution
units. Use in conjunction with MagickSetResolution(). This one
also works before the image has been read (unlike
MagickSetImageUnits()).
2009-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* Magick++/demo/demo.cpp (main): Stop using deprecated functions.
* wand/drawtest.c: Stop using deprecated functions.
2009-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/module.c (ModuleAliases): J2C is supported by the JP2
coder.
* coders/jp2.c: JP2 is now an alias for JPC since many files use
that extension. Problem reported by Stefano Acerbetti.
2009-12-09 Glenn Randers-Pehrson <glennrp@simple....>
* coders/png.c: The png8 encoder would fail when trying to write
a 1-color image. Problem reported by Bob Clark.
2009-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* configure.ac: Define _GNU_SOURCE and _NETBSD_SOURCE so that
pwrite() and pread() prototypes are available under GNU Linux and
NetBSD.
* coders/tiff.c: Warnings reduction.
* magick/widget.c: Warnings reduction.
* magick/segment.c (Classify): Warnings reduction.
* magick/magic.c (struct StaticMagic): Length and offset can never
be negative so use an unsigned type rather than size_t.
* magick/render.c (TracePath): Fix access one beyond the end of
the points array.
2009-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/gem.c (GetOptimalKernelWidth1D, GetOptimalKernelWidth2D):
In the Q32 build, convolution kernel size was estimated
incorrectly for large sigmas on 32-bit systems due to arithmetic
overflow.
2009-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/effect.c (ConvolveImage): Moved here from fx.c since this
is a more suitable place for it to be.
* magick/enhance.c (GammaImage): Improve performance a bit.
Preserve full precision in Q32 build.
2009-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/{channel.c,constitute.c,nt_base.h}: Start using the C'99
`restrict` keyword.
2009-11-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* wand/magick_wand.c (MagickGetImageAttribute): New method to get
an image attribute. Patch contributed by Mikko Koppanen.
(MagickSetImageAttribute): New method to set an image attribute.
Patch contributed by Mikko Koppanen.
* magick/constitute.c (ReadImage): Log subimage and subrange.
* configure: Update to Autoconf 2.65.
* magick/attribute.c (GenerateIPTCAttribute): Returned IPTC string
values were one character too short.
2009-11-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/image.c (AllocateImage): The documented shorthand for
specifying image size via filename[WIDTHxHEIGHT] was not working
for raw formats which use the image tile_info data.
2009-11-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/image.c (ParseSubImageSpecification): Try to match
behavior of previous sub-image specification parser. Some
incantations did not produce the same results.
* win2k/IMDisplay/res/{IMDisplay.ico, IMDisplayDoc.ico}: Replaced
with GraphicsMagick icon prepared by Jaroslav Fojtik.
* coders/svg.c (ReadSVGImage): Use runtime initialization of
SAXModules rather than static initialization.
* magick/command.c: Commands now support reading an image from
stdin in conjunction with a subrange specification (e.g. "-[1]").
Problem was reported by Mario Becroft.
* magick/common.h: New header file to incorporate the common bits
shared by studio.h and api.h.
* ltdl/ltdl.c: Update libltdl to 2.2.6b in order to fix security
issue. Resolves CVE-2009-3736 as it pertains to GraphicsMagick.
2009-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/constitute.c (ConstituteImage, DispatchImage): `A` and
`T` should indicate transparency and `O` should indicate opacity.
Behavior was inconsistent. In some cases `O` meant transparency
while in other cases it meant opacity. Also, in a few cases, matte
was not getting enabled in the image as it should. Problems were
reported by Scott Kuhl.
2009-11-10 Glenn Randers-Pehrson <glennrp@simple....>
* coders/png.c: Also suppress new pedantic warnings from most
older libpng-1.4.0 betas.
* coders/png.c: Added a warning when attempting to use libpng-1.4beta
older than 1.4.0beta67.
2009-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/command.c (MogrifyImage): Only invoke ProfileImage() if
an ICC CMS transform is to be performed. Otherwise invoke
SetImageProfile() to add the new profile.
* magick/profile.c (ProfileImage): Improve logging messages.
* coders/tiff.c (ReadTIFFImage): Allow CIELAB TIFF to be read.
* coders/jpeg.c (ReadJPEGImage): Detect and apply colorspaces
appropriately for ITU FAX JPEG.
2009-11-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* tiff: Updated to libtiff 3.9.2.
2009-11-08 Glenn Randers-Pehrson <glennrp@simple....>
* coders/png.c: Suppress new pedantic warnings from libpng
version 1.2.41 and 1.4.0 and later.
2009-11-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* doc/options.imdoc: Document difference between -recolor and
Adobe Flash color matrix.
2009-11-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/command.c (MogrifyImageCommand): Convolve does not accept
an argument which looks like a geometry. Resolves SourceForge
issue #2890923 "Different handling of -convolve between convert
and mogrify".
(MogrifyImage): Validate that user-provided matrix is square when
parsing -convolve and -recolor commands in order to avoid a core
dump.
* coders/tiff.c (ReadTIFFImage): Improved/added more coder logging
statements.
* magick/xwindow.c: Reflowed some code and comments.
* magick/utility.c (SetClientName): Default client name does need
to be "Magick", so original value is restored.
* coders/mpc.c (ReadMPCImage): is_monochrome and is_grayscale
flags were not managed properly for the MPC coder.
2009-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/jpeg.c (ReadJPEGImage): Added jpeg:block-smoothing and
jpeg:fancy-upsampling defines to control these JPEG library
options.
* magick/image.c (SetImageInfo): Fix lockup due to hanging in loop
while parsing malformed sub-image specification (SourceForge issue
2886560). Also fixes the ability to pass the image size via the
filename specification like "myfile.jpg[640x480]" rather than
needing to use -size.
* coders/jpeg.c (ReadJPEGImage): Fix image scaling when used with
IJG JPEG library version 7.
2009-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/resource.c: Added support for a "Threads" limit, which
specifies how many threads may be used. Note that if
omp_set_nested(true) is used, GCC's GOMP seems to replicate this
number of threads for each level of threading rather than sharing
the specified number of threads across all teams. For example,
specifying four threads leads to sixteen active threads with
omp_set_nested(true) and nested threading. This GOMP behavior
does not seem to cause any harm.
(GetMagickResourceLimit): New accessor function to retrieve the
maximum limit for a resource.
* magick/module.c (ReadModuleConfigureFile): Default set of module
aliases is now statically initialized. The modules.mgk file is
now optional and can be used to support adding more modules, or
diverting existing format support to a user-provided module.
* magick/magick.c (DestroyMagick): Document that this function
should be invoked from the program's primary thread after any
threads using GraphicsMagick have terminated.
(GetMagickInfo): Was thread safe for access but not properly
thread safe during initialization. Is now fully thread safe.
(InitializeMagick): Fully initialize everything needed to
read/write files. Document that this function MUST be invoked
from the program's primary thread prior to using any other
GraphicsMagick functions.
* magick/color_lookup.c (ReadColorConfigureFile): The colors.mgk
is now optional so don't throw an exception if it is not found.
* magick/semaphore.c (AcquireSemaphoreInfo): Deprecated this
internal function. Use AllocateSemaphoreInfo() and
LockSemaphoreInfo() instead.
(LiberateSemaphoreInfo): Deprecated this internal function. Use
UnlockSemaphoreInfo() instead.
2009-10-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* config/colors.mgk: Colors.mkg is now empty since it is used to
modify or extend the built-in color lookup table.
* magick/{constitute.c,delegate.c,log.c,magic.c,magick.c,tempfile.c}:
Explicitly initialize semaphores via InitializeMagick().
* magick/type.h: New header file to contain types and function
prototypes for functions in type.c.
* magick/color_lookup.c (ReadColorConfigureFile): Store RGB color
table in a static struct. Entries in the colors.mgk file are now
used to modify statically-defined entries, or add new definitions
to the color table.
2009-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* configure.ac: --enable-libtool-verbose configure option is no
longer needed now that we have silent build capability.
2009-10-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/attribute.c (GenerateEXIFAttribute): Add support for
retrieving GPS EXIF attributes. Based on work contributed by
Jukka Manner.
* Magick++/lib/STL.cpp, Magick++/lib/Magick++/STL.h (shadeImage):
ShadeImage was the result of a botched cut-and-paste. Corrected
now. Thanks to Jukka Manner for making me aware of this.
2009-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/analyze.c: New source file to contain image analysis
functions. Moved functions from image.c and color.c to this file.
* magick/color_lookup.c: New source file to contain color lookup
functions. Moved associated functions from color.c to this file.
* magick/ImageMagick.rc: Remove inclusion of magic.mgk.
* magick/utility.c (MagickRoundUpStringLength): Use a bit less
memory.
* magick/color.c: Use most efficient string allocation function.
* config/Makefile.am: Eliminate use of magic.mgk.
* magick/magic.c: Store file header magic data in a static struct.
2009-10-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/describe.c (DescribeImage): Include composition operator
in verbose output. Also use CompressionTypeToString() to convert
a compression enum to a string.
2009-10-11 Toby Thain <qu1j0t3@users.sourceforge.net>
* coders/psd.c: Further fix for 2783535 reported by Daniel Kirsch.
Omit 0x0 layers from the image list, or they break compositing.
2009-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/xwindow.c: Check for overflow on all array allocations.
* magick/command.c (MogrifyImages): If there is only one image in
the list, then -flatten does nothing at all.
* magick/transform.c (FlattenImages): If the user provides only
one image then return a clone of that image rather than reporting
an error.
* magick/texture.c (TextureImage): If an under-texture is applied,
then remove the matte channel.
* magick/xwindow.c (MagickXMakeImage): Apply a checkerboard
pattern when displaying non-opaque TrueColor images. Fix a second
integer overflow issue related to CVE-2009-1882.
2009-10-10 Toby Thain <qu1j0t3@users.sourceforge.net>
* coders/psd.c: Fix for 2783535 reported by Daniel Kirsch. PSD
parser was confused by 0x0 pixel layers, resulting in image data
corruption of all following layers.
2009-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/xwindow.c (MagickXMakeImage): Fix for CVE-2009-1882
"Integer overflow in the XMakeImage function". The problem is
that the shared memory segment allocated may be smaller than the
image size requires due to integer overflow. On some systems it
may be possible to crash GraphicsMagick (while displaying an image
file) but not likely to overwrite the heap since shared memory
segments are outside of the heap allocation.
* magick/memory.c (MagickMallocArray): Use MagickArraySize().
* magick/memory.c (MagickArraySize): New private function to
compute the size of an array and return zero if it overflows the
size_t type.
2009-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/dcm.c (ReadDCMImage): Handle (UN)known type VRs correctly
and interpret the transfer syntax correctly. Added define
"dcm:avoid-scaling" to request that the coder should not scale
image samples unless necessary (i.e. when bits used > quantum
depth or maximum colormap depth, depending on image type). Work
is contributed by John Sergeant.
2009-10-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* tests/Makefile.am (CHECK_PDF_FILE_COMPRESS): Add PDF tests with
the various compression options.
* coders/pdf.c (WritePDFImage): If the input file used JPEG
compression and has not been converted to a bilevel or palette
image, then use JPEG compression with original settings. Problem
was reported by Marco Atzeri.
2009-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* config/modules.mgk: DCRAW module entries were missing.
* coders/tiff.c (WriteGROUP4RAWImage): Was not working properly on
big-endian CPUs with libtiff 1.4.
* coders/ps2.c (WritePS2Image): Use ImageToJPEGBlob().
* coders/ps3.c (WritePS3Image): Use ImageToJPEGBlob().
* coders/pdf.c (WritePDFImage): Decouple from libtiff. Use ImageToJPEGBlob().
* coders/dcraw.c (RegisterDCRAWImage): Needed to register module
name.
* coders/cals.c (ReadCALSImage): Fix bug in CALS reader which
caused reading images taller than the image width to fail with an
error.
* magick/utility.c (AcquireString): Minor optimizations.
(AllocateString): Minor optimizations.
(CloneString): Minor optimizations.
(LocaleCompare): Minor optimizations.
(SubstituteString): Re-implemented in a more compact way which
might avoid some reallocations.
* magick/magick.c (ListModuleMap): Don't crash if `module` was not
set.
* magick/delegate.c (ListDelegateInfo): Fix insignificant memory
leak.
* magick/compress.c (ImageToJPEGBlob): Preserve JPEG settings if
feasable.
2009-09-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/pdf.c (WritePDFImage): Use ImageToHuffman2DBlob() and
ImageToJPEGBlob().
* coders/cals.c (WriteCALSImage): Use ImageToHuffman2DBlob().
* magick/compress.c (ImageToHuffman2DBlob): New private
convenience function to produce a CCIT Group4 blob.
(ImageToJPEGBlob): New private convenience function to produce a
JPEG blob.
2009-09-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/jp2.c (ReadJP2Image): Fix scaling problem noticed when
reading 12-bit JP2 format. Problem was reported by Steve Shaw.
(WriteJP2Image): Support writing JP2 files with arbitrary depth
ranging from 2 to 16 rather than just 8 or 16.
2009-09-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/unix_port.c (MagickGetMMUPageSize): Cache returned page
size to eliminated repeated system calls.
* magick/operator.c (QuantumOperatorRegionImage): Fix missing
percent in progress monitor message.
2009-09-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/meta.c (GetIPTCStream): Should return IPTC block length
rather than remaining blob length. Patch submitted by John
Sergeant.
2009-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/meta.c (GetIPTCStream): IPTC blobs should be padded to an
even size. Patch submitted by John Sergeant.
2009-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/tiff.c (WriteGROUP4RAWImage): Added a GROUP4RAW encoder.
* coders/cals.c (Huffman2DEncodeImage): Fix test failures when
doing I/O to an in-memory blob.
* coders/pcl.c (WritePCLImage): Use a different control code to
(hopefully) eject the page. Patch submitted by John Sergeant.
2009-09-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* tests/Makefile.am: Add CALS tests. Skip testing deep images for
most formats which don't support deep images.
* coders/cals.c: CALS module was not being built under Windows
with MSVC. Now it is.
* VisualMagick/configure/configure.cpp (process_library): CALS
module is dependent on TIFF library.
* coders/cals.c (WriteCALSImage): Allow CALS writing at any time,
but only enable CALS reader if libtiff is present at build time.
* coders/{cals.c,pdf.c,ps2.c,ps3.c} (Huffman2DEncodeImage): Force
TIFF image type to bilevel type.
* config/modules.mgk, VisualMagick/bin/modules.mkg: CAL-->CALS
rather than CALS-->CAL.
2009-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* www/benchmarks.rst: Updated GraphicsMagick vs ImageMagick
benchmark results.
2009-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/cals.c (WriteCALSImage): Initial CALS Type 1 writer
implementation. Contributed by John Sergeant.
* coders/png.c (ReadOnePNGImage): Fresh pixels should be set using
SetImagePixels().
2009-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* version.sh: Released GraphicsMagick 1.3.7.
2009-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/msl.c, doc/conjure.imdoc: Add support for a new `profile`
command in MSL/conjure which applies, adds, or removes one or more
IPTC, ICC or generic profiles from a file. Work contributed by
John Sergeant.
2009-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/nt_base.c (NTGhostscriptFind): Make sure we close the
registry key. Log any Windows error messages.
* magick/profile.c (AppendImageProfile): New function to add or
append a profile. If the profile already exists, then the data
provided is appended to it.
* coders/jpeg.c (ReadGenericProfile,ReadICCProfile,ReadIPTCProfile):
Profile chunks need to be concatenated. Otherwise "chunked"
profiles become corrupted.
2009-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/average.c (AverageImages): Moved from image.c to new
average.c file.
* magick/colormap.h (VerifyColormapIndex): Moved here from color.h
* magick/colormap.c (AllocateImageColormap): Moved from image.c to
new colormap.c source file.
(CycleColormapImage): Moved from image.c.
(ReplaceImageColormap): Moved from image.c.
(SortColormapByIntensity): Moved from image.c.
(MagickConstrainColormapIndex): Moved here from color.c.
* magick/describe.c (DescribeImage): Moved from image.c to new
describe.c source file.
* magick/plasma.c (PlasmaImage): Moved from image.c to new
plasma.c source file.
* magick/statistics.c (GetImageStatistics): Moved from image.c to
new statistics.c source file.
* magick/gradient.c (GradientImage): Moved from image.c to new
gradient.c source file.
* magick/texture.c (ConstituteTextureImage,TextureImage): Moved to
new texture.c source file.
* coders/svg.c (ENABLE_SVG_WRITER): Disable SVG writer by default
since it usually does not work correctly and is unlikely to work
correctly any time soon.
2009-09-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/profile.c (ProfileImage): GlobExpression is case
sensitive so assure that its glob strings are always upper-cased.
Without this fix, lower-cased arguments like "icm" would fail to
be removed. This would not be much of a problem except that the
documentation claims that lower-case works.
(SetImageProfile): Assure that profile names are upper-cased.
* magick/fx.c (ColorMatrixImage): Add opaque opacity channel if
image currently lacks an opacity channel but the matrix updates
the opacity channel. Requested by Kerry Panchoo.
2009-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/meta.c (GetIPTCStream): Updates from John.Sergeant to fix
issues with IPTC record 2 blocks and to deal better with IPTC
embedded in an 8BIM profile.
* PerlMagick/t/read.t: Added tests for Topol format.
2009-09-12 Fojtik Jaroslav <JaFojtik@seznam.cz>
* coders/topol.c: Pallette overflow fixed for subtype 3.
2009-09-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* utilities/tests/msl_composite.sh: Use a draw command file for
this test script too.
* utilities/tests/{black-threshold.sh,draw.sh,recolor.sh,
white-threshold.sh}: MSYS is sometimes wreaking havoc on arguments
with spaces in them so use work-arounds.
2009-09-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/nt_base.c (NTGhostscriptFind): Improve logging messages
when searching for Ghostscript.
2009-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/pixel_cache.c (CacheInfo): Add read_only member to
indicate if cache is allowed to be modified.
(ModifyCache): Clone cache if origin cache is read only.
(PersistCache): Persistent caches which are attached are treated
as read-only. This avoids crash with MPC images which are read
and subsequently modified.
Reverted pixel cache locking changes which were made yesterday
since I decided that they were too risky until file handle
management is addressed.
2009-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/resource.c (InitializeMagickResources): Increase
operating system file handle limits if necessary.
* magick/pixel_cache.c: Pixel cache file locking is now done at
point of access.
* magick/nt_base.c (NTGhostscriptFind): New function to find
Ghostscript under Windows, replacing previous Ghostgum
implementation.
* Copyright.txt: License is now based on MIT license exactly,
without extra edits. Ghostgum code has been eliminated so it is
no longer necessary to include its license.
2009-09-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/delegate.c (GetPostscriptDelegateInfo): Add a gs-palette
delegate entry in order to force Ghostscript to output a
colormapped image if `-type palette` is specified prior to the
input filename. Ghostscript's dithering is much courser than
GraphicsMagick's -colors default (more similar to
-ordered-dither), but it is fast and produces smaller intermediate
files.
* coders/ps.c (ReadPSImage): Eliminate use of NULL pointer when
progress monitor is enabled. Was referring to image->filename
rather than image_info->filename as it should have.
* magick/delegate.c (InvokePostscriptDelegate): Added an
`exception` argument so that failure details can be returned.
Tried to reorganize the code so that it is more tolerant of errors
such as a dynamically-loadable DLL failing to load. On POSIX
systems, Ghostscript was not being invoked as securely as
expected.
* coders/Makefile.am: Only build the DPS module if the Display
Postscript library is available.
* coders/ept.c (ReadEPTImage): If we don`t have the Display
Postscript library, then don't try to use it as a fallback.
* coders/ps.c (ReadPSImage): If we don't have the Display
Postscript library, then don't try to use it as a fallback.
* magick/blob.c (CloseBlob): If blob was never allocated, then
don't try to close it.
2009-09-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* www/index.rst: Mention 1.2.8 release.
2009-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* Magick++: New Image methods cdl(), colorMatrix(), and haldClut()
added.
2009-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/shear.c (IntegralRotateImage): Select tile sizes in a
more intelligent fashion.
* magick/pixel_cache.c (GetPixelCacheInCore): New private pixel
cache method to see if image pixels are in core.
2009-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/constitute.c (ReadImage): No longer clear the exception
at the start of ReadImage() and other similar functions. If the
user of the function cares, she can clear the exception in
advance. It is not right to overwrite exceptions which might not
have been reported/handled yet.
* magick/shear.c (IntegralRotateImage): Rotate by zero degrees
does not need to do any work.
* coders/*.c, magick/*.c: Include image dimensions in progress
monitor output when loading or saving a file. Eliminate redundant
text from progress messages.
2009-08-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/wmf.c: Eliminate memory leaks.
* magick/render.c (DrawDashPolygon): Avoid access beyond end of
array. Resolves SourceForge issue 2832125 "Crash on SVG
conversion".
* coders/png.c (ReadOnePNGImage): Ensure that opacity channel is
properly initialized. Resolves SourceForge issue 2831240
"Possible alpha channel issue with PNG w/palette and tRNS".
2009-08-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/nt_base.h (HAVE_TIFFSWABARRAYOFTRIPLES): Need to define
this since libtiff includes this function now.
* VisualMagick/tiff/libtiff/tiffconf.h.in: Enable all the options
by default.
* tiff: Updated to libtiff 3.9.1. 3.9.0 was broken.
2009-08-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/profile.c (MagickFreeCMSTransform): Add a CMS transform
destructor since otherwise Visual Studio does not like it.
* tiff: Updated to libtiff 3.9.0.
2009-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/command.c (TimeImageCommand): Add a simple `time`
sub-command to time the execution of any other GraphicsMagick
sub-command. Similar in concept to the `benchmark` sub-command
but produces output similar to the `time` command offered by the
zsh command shell. Handy for when `time` is not available, or
consistent output is desired.
* magick/magick.c (MagickGetFileSystemBlockSize): New private
function to allow getting desired filesystem block size.
(MagickSetFileSystemBlockSize): New private function to allow
setting desired filesystem block size.
* magick/pixel_cache.c (WriteCacheIndexes, WriteCachePixels):
Temporarily disable pixel cache row coalescing when writing to
disk until we come up with a good way to optimize write sizes.
* coders/meta.c (ReadMETAImage): Fix memory leak of profile blob.
2009-08-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* utilities/tests/icc-transform.sh: Add a sanity-test for applying
ICC profiles.
* magick/profile.c (ProfileImage): Improve OpenMP performance.
2009-08-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/render.c (DrawPolygonPrimitive): Drawing of points,
lines, and polygons is now accelerated using OpenMP with good
speed-up.
2009-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* wand/drawing_wand.c (DrawClearException): New function to clear
drawing wand exception.
(DrawGetException): New function to retrieve information regarding
the last drawing wand exception (if any).
(DrawRender): DrawRender() is now deprecated since it requires an
Image pointer to be embedded in the drawing wand. The image
passed is subsequently lost by CloneDrawingWand() since it must
clone the image using copy-on-write. Subsequent use of
DrawRender() on a cloned wand scribbles on an image the user does
not have access to. Use existing Wand function MagickDrawImage()
instead.
(DrawAllocateWand): DrawAllocateWand() is now deprecated since it
requires passing an Image pointer into the drawing wand. Use
existing DrawingWand function NewDrawingWand() instead.
2009-08-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* wand/drawing_wand.c (CloneDrawingWand): New function to
deep-copy a drawing wand.
(NewDrawingWand): Use a boolean flag to track if image is
allocated by the wand, or by the user. Most of the previous
DrawAllocateWand() code is moved into NewDrawingWand() so that the
boolean flag is easy to manage.
2009-08-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/tiff.c (WriteTIFFImage): Support writing grayscale
JPEG-compressed TIFF.
2009-08-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/tiff.c (ReadTIFFImage): Don't override the photometric
for grayscale JPEG-compressed TIFF.
2009-08-08 Glenn Randers-Pehrson <glennrp@simple....>
* coders/png.c: Made compatible with libpng-1.4.0beta74 and later
(won't work with libpng-1.4.0beta35 through beta73) due to change
in names of png_struct members "trans" and "trans_values").
2009-08-08 Fojtik Jaroslav <JaFojtik@seznam.cz>
* coders/topol.c: Pallette is ignored for subtype 5 (RGB).
2009-08-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/{cineon.c, dpx.c, locale.c, svg.c}, magick/{attribute.c,
effect.c, utility.c}: Eliminate warnings reported by GCC 4.4.0.
2009-07-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* configure.ac: Try to be more insistent about compilation failure
if libjpeg version is less than 6b. IRIX compiler only warns
about #error preprocessor statement.
2009-07-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* wand/magick_wand.c (MagickSetCompressionQuality): New Wand
method to allow setting the compression quality.
2009-07-29 Fojtik Jaroslav <JaFojtik@seznam.cz>
* coders/topol.c: Fixed missing break. Added response to ping.
2009-07-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/pcx.c (ReadPCXImage): Detect improper rows, columns, or
depth. Fixes CVE-2008-1097 "Memory corruption in ImageMagick's
PCX coder".
* configure.ac: Update to Autoconf 2.64.
2009-07-25 Fojtik Jaroslav <JaFojtik@seznam.cz>
* coders/topol.c: Fixed several issues. Added possibility to read
TopoL level 2 images.
2009-07-25 Fojtik Jaroslav <JaFojtik@seznam.cz>
* VisualMagick\configure\configure.cpp: Fixed library absolute path issue.
2009-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/random.c (DestroyMagickRandomGenerator): Trick to free
thread specific random kernel contexts simply locks up with MSVC's
OpenMP, so remove this functionality.
2009-07-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/random.c (DestroyMagickRandomGenerator): Cleanup thread
specific random kernel data.
* magick/tsd.c (MagickTsdKeyCreate): Fix glitch when built without
any threads support.
2009-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* www/benchmarks.rst: Update GraphicsMagick vs ImageMagick image
processing benchmark results.
2009-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* www/OpenMP.rst: Update performance measurements for readily
available systems.
* NEWS.txt: Updated to reflect latest changes.
2009-07-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* png: Updated libpng to 1.2.38.
2009-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/image.c (GetImageInfo): Default interlace for ImageInfo
is now UndefinedInterlace so that it is possible to preserve the
original interlace setting for the image file. Code depending on
the previous default setting of NoInterlace is adjusted to suit.
This is a potentially risky change given the brittle nature of
some of the legacy code.
* coders/tiff.c (ReadTIFFImage): Stripped reader needs to read
planar TIFF plane-wise in order to work with libtiff's internal
buffering.
(ReadTIFFImage): Tiled reader needs to read planar TIFF plane-wise
in order to work with libtiff's internal buffering.
(WriteTIFFImage): Tiled writer needs to output planar TIFF
plane-wise in order to work with libtiff's internal buffering.
2009-07-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/command.c (MontageUsage): Reconcile montage help output
with actual montage options.
2009-07-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/tiff.c (WriteTIFFImage): Allow the user to be able to
specify rows_per_strip when using JPEG compression. The
rows_per_strip value rounded up to the nearest multiple of 16.
2009-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/tiff.c (WriteTIFFImage): Add the ability for the user to
manually specify the predictor using syntax like `-define
tiff:predictor=2`.
2009-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/quantize.c (QuantizeImages): Avoid crash when using
-monitor +map on an image list.
* magick/command.c (BenchmarkImageCommand): Send benchmark report
to stderr so that it does not interfer with pipes.
* magick/cdl.c (CdlQuantum): Add range limiting of value before
applying power function.
* coders/dpx.c (ReadDPXImage, WriteDPXImage): Using floating point
calculations when building sample value lookup tables in order to
decrease error. In particular input values were being scaled too
low, resulting in improperly rounding down during processing of
the image.
2009-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/pdf.c (WritePDFImage): Incorporated updates from John
Sergeant to remove the font and thumbnail objects from PDF output.
2009-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/cdl.c (CdlImage): New function to apply an ASC CDL
transform to the image. Original implementation by Clément Follet
from Workflowers but considerably re-worked by Bob Friesenhahn.
Available as -asc-cdl via the `convert` and `mogrify` subcommands.
2009-07-04 Fojtik Jaroslav <JaFojtik@seznam.cz>
* www/formats.rst: MAT module can read compressed files.
Remove warning about unsupported compression.
2009-07-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/dcm.c: Eliminate compiler warnings.
2009-07-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* coders/dcm.c: Significant re-write of the DICOM reader. Work
contributed by John Sergeant.
2009-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/blob.c (OpenBlob): Subsequent research shows that Direct
I/O will not be useful to ordinary file I/O due to specific
requirements for buffer alignments and I/O sizes. Support for
requesting it is removed.
2009-07-01 Fojtik Jaroslav <JaFojtik@seznam.cz>
* www/formats.rst: ART module has writer for more than year.
So mark this here.
2009-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* configure.ac, magick/blob.c: Add experimental Solaris direct I/O
support which is enabled by setting the environment variable
MAGICK_DIRECTIO to TRUE. Direct I/O bypasses the filesystem
cache. Only works for NFS and UFS, and not for ZFS.
2009-06-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* rungm.sh.in: Fix environment variable issues noticed while
running the test suite under MinGW.
* Makefile.am (TESTS_ENVIRONMENT): Fix environment variable issues
noticed while running the test suite under MinGW.
* magick/hclut.c (HaldClutImage): Don't convert Cineon Log to RGB.
2009-06-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/command.c (MogrifyImageCommand): Cache mogrify argument
images so that they are only loaded once when mogrify is used to
process multiple image files.
* coders/dpx.c (WriteDPXImage): Fix leak of chroma image when
subsampling to 4:2:2.
2009-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/utility.c (ExpandFilenames): Expand @filename to a list
of arguments.
2009-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* magick/command.c (MogrifyImageCommand): Fix memory leak of