xref: /imagick/ChangeLog (revision f3218636)
13.5.0RC1
2- ImageMagick 7 is still not widely available on systems. So contrary to previous plans, ImageMagick 6 support will continue for now. But users are recommeded to use ImageMagick 7 if possible.
3- Method names have been changed to not be all lower case. Both method names and parameter information is built from the Imagick*.stub.php files.
4- Prevent accidental creation of zero dimension images. ImageMagick doesn't prevent creation of zero dimension images, but will give an error when that image is used. I don't think this will affect any correctly program, but if it does, and you need to re-enable zero dimension images, please open an issue at https://phpimagick.com/issues
5- Various pieces of work have been done to make GOMP not segfault including:
6  * Call omp_pause_resource_all when available during shutdown.
7  * Added the 'imagick.shutdown_sleep_count' (default 10) and 'imagick.set_single_thread' (default On). Both of these exist to mitigate the segaults on shutdown.
8- Fixes:
9  * Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel be available when using Imagick with ImageMagick version 6.7.8-x
10  * Imagick::morphology now no longer ignores channel parameter
11- Added:
12  * PHP 8.0 support.
13  * Location check for ImageMagick 7 for NixOS and Brew.
14  * Imagick::houghLineImage(int $width, int $height, float $threshold): bool {}
15  * Imagick::setImagePixelColor(int $x, int $y, ImagickPixel|string $color)
16  * Imagick::setImageMask(Imagick $clip_mask, int $pixelmask_type)
17  * Imagick::getImageMask(int $pixelmask_type)
18  * Imagick::VIRTUALPIXELMETHOD_DITHER
19  * Imagick::VIRTUALPIXELMETHOD_RANDOM
20  * Imagick::COMPOSITE_FREEZE
21  * Imagick::COMPOSITE_INTERPOLATE
22  * Imagick::COMPOSITE_NEGATE
23  * Imagick::COMPOSITE_REFLECT
24  * Imagick::COMPOSITE_SOFTBURN
25  * Imagick::COMPOSITE_SOFTDODGE
26  * Imagick::COMPOSITE_STAMP
27  * Imagick::COMPOSITE_RMSE
28  * Imagick::COMPRESSION_DWAA
29  * Imagick::COMPRESSION_DWAB
30  * Imagick::EVALUATE_INVERSE_LOG
31  * Imagick::COLORSPACE_DISPLAYP3
32  * Imagick::COLORSPACE_ADOBE98
33  * Imagick::COLORSPACE_PROPHOTO
34  * Imagick::COLORSPACE_JZAZBZ
35  * Imagick::DISTORTION_RIGID_AFFINE
36  * Imagick::DISTORTION_BARRELINVERSE
37  * Imagick::STATISTIC_ROOT_MEAN_SQUARE
38
393.4.4
40- Fixes:
41  * Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel be available when using Imagick with ImageMagick version 6.7.8-x
42
433.4.4RC2
44- Fixes:
45  * Correct stability for RC release
46  * Fix undefined variable for ZTS build
47
483.4.4RC1
49- The 3.4.4 release is intended to be the last release (other than small bug fixes) that will support either PHP 5.x, or ImageMagick 6.x. The next planned release will be PHP > 7.0 and ImageMagick > 7.0 at least, if not higher.
50- Added:
51  * function Imagick::optimizeImageTransparency()
52  * METRIC_STRUCTURAL_SIMILARITY_ERROR
53  * METRIC_STRUCTURAL_DISSIMILARITY_ERROR
54  * COMPRESSION_ZSTD - https://github.com/facebook/zstd
55  * COMPRESSION_WEBP
56  * CHANNEL_COMPOSITE_MASK
57  * FILTER_CUBIC_SPLINE - "Define the lobes with the -define filter:lobes={2,3,4} (reference https://imagemagick.org/discourse-server/viewtopic.php?f=2&t=32506)."
58  * Imagick now explicitly conflicts with the Gmagick extension.
59- Fixes:
60  * Bug 77128 - Imagick::setImageInterpolateMethod() not available on Windows
61  * Prevent memory leak when ImagickPixel::__construct called after object instantiation.
62  * Prevent segfault when ImagickPixel internal constructor not called.
63  * Imagick::setResourceLimit support for values larger than 2GB (2^31) on 32bit platforms.
64  * Corrected memory overwrite in Imagick::colorDecisionListImage()
65  * Bug 77791 - ImagickKernel::fromMatrix() out of bounds write.
66- Deprecated:
67  * The following functions have been deprecated:
68    ImagickDraw, matte
69    Imagick::averageimages
70    Imagick::colorfloodfillimage
71    Imagick::filter
72    Imagick::flattenimages
73    Imagick::getimageattribute
74    Imagick::getimagechannelextrema
75    Imagick::getimageclipmask
76    Imagick::getimageextrema
77    Imagick::getimageindex
78    Imagick::getimagematte
79    Imagick::getimagemattecolor
80    Imagick::getimagesize
81    Imagick::mapimage
82    Imagick::mattefloodfillimage
83    Imagick::medianfilterimage
84    Imagick::mosaicimages
85    Imagick::orderedposterizeimage
86    Imagick::paintfloodfillimage
87    Imagick::paintopaqueimage
88    Imagick::painttransparentimage
89    Imagick::radialblurimage
90    Imagick::recolorimage
91    Imagick::reducenoiseimage
92    Imagick::roundcornersimage
93    Imagick::roundcorners
94    Imagick::setimageattribute
95    Imagick::setimagebias
96    Imagick::setimageclipmask
97    Imagick::setimageindex
98    Imagick::setimagemattecolor
99    Imagick::setimagebiasquantum
100    Imagick::setimageopacity
101    Imagick::transformimage
102
1033.4.3
104  No changes from 3.4.3RC4.
105
1063.4.3RC4
107- Fixes:
108  * Avoid internal segfault.
109
1103.4.3RC3
111- Fixes:
112  * Correct file permissions in built package.
113
1143.4.3RC2
115- Fixes:
116  * Imagick::getRegistry() now throws an exception if the key does not exist, rather than terminating the program.
117  * Prevent attempts to resize image to zero width or height, which is not supported by ImageMagick.
118  * Fix compiling on Windows issue.
119- Added:
120  * function Imagick::setImageAlpha() which replaces ImagickDraw::setOpacity()
121
1223.4.3RC1
123- Fixes:
124  * Imagick::transformImage and Imagick::orderedPosterizeImage now correctly excluded from
125  IM7 build.
126  * Bug 72311 - compiling against PHP 7.1.
127  * Bug 72226 - regression for Imagick Exception classes being final on 7.x
128  * Corrected reference of constants. Imagick::METRIC_MEANERRORPERPIXELMETRIC from MeanErrorPerPixelMetric to MeanErrorPerPixelErrorMetric. Imagick::METRIC_PEAKSIGNALTONOISERATIO from PeakSignalToNoiseRatioMetric to PeakSignalToNoiseRatioErrorMetric
129- Added:
130  * function Imagick::identifyImageType() : int returns one of the Imagick::IMGTYPE_* constants
131  * Imagick::INTERPOLATE_NEAREST_PIXEL for ImageMagick >= 7
132  * In ImageMagick, the names of two filter constants were corrected to the standard spelling. Support for the new spelling has been added. The old constants are left in place for legacy support.
133    Legacy: FILTER_HANNING, new name: FILTER_HANN
134    Legacy: FILTER_WELSH,  new name: FILTER_WELCH
135  * The Imagick::IMGTYPE_*MATTE* constants are deprecated for ImageMagick 7. Instead an appropriate Imagick::IMGTYPE_*MATTE* should be used.
136    IMGTYPE_GRAYSCALEMATTE => IMGTYPE_GRAYSCALEALPHA
137    IMGTYPE_PALETTEMATTE => IMGTYPE_PALETTEALPHA
138    IMGTYPE_TRUECOLORALPHA => IMGTYPE_TRUECOLORMATTE
139    IMGTYPE_COLORSEPARATIONALPHA =>  IMGTYPE_COLORSEPARATIONMATTE
140    IMGTYPE_PALETTEBILEVELALPHA => IMGTYPE_PALETTEBILEVELMATTE
141  * Several ALPHACHANNEL_* constants are only available in ImageMagick < 7
142    IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_RESET", ResetAlphaChannel);
143    IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_COPY", CopyAlphaChannel);
144    IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_OPAQUE", OpaqueAlphaChannel);
145  * Several ALPHACHANNEL_* constants are only available in ImageMagick >= 7. These constants re-use the values of the constants removed.
146    IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_ON", OnAlphaChannel);
147    IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_OFF", OffAlphaChannel);
148    IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_DISCRETE", DiscreteAlphaChannel);
149
1503.4.2
151- Fixes:
152  * Bug: IM143 Correct ifdef around setOpacity, getOpacity and localContrastImage.
153  * Bug: IM147 Imagick was Borging PHP's error handler.
154
1553.4.1
156- Fixes:
157  * Bug 71742 - arrays that contain data that is held by reference gives error.
158- Added:
159  * Imagick::autoGammaImage([int channel = CHANNEL_ALL])
160  * Imagick::autoOrient()
161  * Imagick::compositeImageGravity(Imagick $image, int COMPOSITE_CONSTANT, int GRAVITY_CONSTANT)
162  * Imagick::localContrastImage(float radius, float strength)
163  * Imagick::DIRECTION_LEFT_TO_RIGHT
164  * Imagick::DIRECTION_RIGHT_TO_LEFT
165  * Imagick::SPARSECOLORMETHOD_MANHATTAN
166  * ImagickDraw::getOpacity() : float
167  * ImagickDraw::setOpacity(float opacity) :bool
168  * ImagickDraw::getFontResolution() : array
169  * ImagickDraw::setFontResolution(float x, float y) : bool
170  * ImagickDraw::getTextDirection() : bool
171  * ImagickDraw::setTextDirection(int direction) : bool
172  * ImagickDraw::getBorderColor() : ImagickPixel
173  * ImagickDraw::setBorderColor(ImagickPixel color) : bool
174  * ImagickDraw::getDensity() : string|null
175  * ImagickDraw::setDensity(string density_string) : bool
176  * ImagickPixel::setColorFromPixel(ImagickPixel $srcPixel) : bool
177
1783.4.0
179  No changes from 3.4.0RC6.
180
1813.4.0RC6
182- Added:
183  * Imagick::evaluateImages(int EVALUATE_CONSTANT) : Imagick
184- Fixes:
185  * Imagick::setImageWhitePoint, Imagick::setImageRedPrimary, Imagick::setImageGreenPrimary,
186  Imagick::setImageBluePrimary now take 3 params when compiled against IM7.
187  * Imagick::getImageWhitePoint, Imagick::getImageRedPrimary, Imagick::getImageGreenPrimary,
188   Imagick::getImageBluePrimary now return 3 values when compiled against IM7.
189
1903.4.0RC5
191- Added:
192  * Imagick::subImageMatch() added parameters. The signature is now:
193    Imagick::subimagematch(Imagick $subimage[, array &$bestMatch[, float &similarity[,
194      float $similarity_threshold = 0[, int $metric = ]]]])
195    These parameters are only used when compiled against ImageMagick 7.
196- Fixes:
197  * wrong type for zend_parse_parameters.
198
1993.4.0RC4
200- Fixes:
201  * Remove duplicated definitions of class constants.
202
2033.4.0RC3
204- Fixes:
205  * Imagick::adaptiveResizeImage, Imagick::cropThumbnailImage Imagick::resizeImage,
206    Imagick::scaleImage, and Imagick::thumbnailImage have all had a rounding bug fixed.
207    An additional parameter has been added to each of them, 'bool $legacy'. If legacy
208    is true, the calculations are done with the small rounding bug that existed in
209    Imagick before 3.4.0. If false, the calculations should produce the same results as
210    ImageMagick CLI does.
211  * Imagick::colorizeImage() and Imagick::tintImage were using the wrong behaviour.
212    It is now fixed and the legacy behaviour can still be used by passing a 3rd
213    parameter of `true` to the function to indicate that the legacy behaviour is
214    desired.
215  * Imagick::importImagePixels regression fixed.
216  * Imagick::subImageMatch use correct error metric in IM7
217- Added methods:
218  * Imagick::similarityImage() which is an alias to Imagick::subImageMatch()
219
2203.4.0RC2
221- Fixes:
222  * Version number in extension header.
223
2243.4.0RC1
225- Added support:
226  * PHP 7
227  * ImageMagick 7. Imagick can be compiled against either ImageMagick 6 or ImageMagick 7
228    However it must be run with the exact same version it was compiled against. Trying
229    to run Imagick with a different version of ImageMagick than it was compiled against
230    is not supported. Please see http://nextgen.imagemagick.org/script/porting.php for
231    more information about ImageMagick 7.
232- Minimum versions supported are now PHP >= 5.4.0 and ImageMagick >= 6.5.3-10.
233    Earlier versions may continue to work, but they are no longer supported.
234- Added methods:
235  * Imagick::getConfigureOptions
236  * Imagick::getFeatures
237  * Imagick::getHDRIEnabled
238  * Imagick::setImageChannelMask (IM7 only)
239- Added IM7 constants:
240  * Imagick::CHANNEL_READ_MASK
241  * Imagick::CHANNEL_WRITE_MASK
242  * Imagick::CHANNEL_META
243- Fixes:
244  * ImagickPixel::getColorQuantum, ImagickPixel::getColorValueQuantum and
245    ImagickPixel::setColorValueQuantum now correctly use floats when Imagick
246    was compiled against a HDRI version of ImageMagick
247  * Imagick::exportImagePixels works for all storage types
248
2493.3.0
250  No changes
251
2523.3.0RC2
253- Corrected package versioning to exclude PHP7
254- Correct params for Imagick::getColorValueQuantum
255
2563.3.0RC1
257- Added ImagickKernel class. These can be used with the Imagick::morphology or
258    Imagick::filter functions.
259- Added methods:
260  * Imagick::brightnessContrastImage()
261  * Imagick::colorMatrixImage()
262  * Imagick::deleteImageProperty()
263  * Imagick::filter()
264  * Imagick::forwardFourierTransformImage()
265  * Imagick::getAntiAlias()
266  * Imagick::getImageCompression()
267  * Imagick::getRegistry()
268  * Imagick::getQuantum()
269  * Imagick::identifyFormat()
270  * Imagick::inverseFourierTransformImage()
271  * Imagick::isPixelSimilarQuantum()
272  * Imagick::listRegistry()
273  * Imagick::morphology()
274  * Imagick::rotationalBlurImage()
275  * Imagick::selectiveBlurImage()
276  * Imagick::setAntiAlias()
277  * Imagick::setImageBiasQuantum()
278  * Imagick::setProgressMonitor()
279  * Imagick::setRegistry() - which allows setting the "temporary-path" used by ImageMagick
280  * Imagick::statisticImage()
281  * Imagick::subImageMatch()
282  * ImagickPixel::getColorQuantum()
283- Added constants:
284  * Imagick::RESOURCETYPE_TIME
285  * Imagick::RESOURCETYPE_THROTTLE
286  * Imagick::CHANNEL_RGBA
287  * Imagick::ALPHACHANNEL_BACKGROUND
288  * Imagick::FUNCTION_ARCSIN
289  * Imagick::FUNCTION_ARCTAN
290- Fixed Imagick::clutImage() parameter parsing
291- Fixed tint image bug
292- Fixed ImageMagick compiled with HDRI having quantum values as floats
293- Fixed memory leaks in:
294  * Imagick::getImageBlob()
295  * Imagick::getImagesBlob()
296  * Imagick::getImageChannelStatistics()
297  * Imagick::getImageFormat()
298  * Imagick::getImageMimetype()
299  * Imagick::getSamplingFactors()
300  * Imagick::identifyImage()
301  * Imagick::tintImage
302- Fixed segfault when compiling statically
303- ImagickDraw::setFontFamily no longer checks whether the font is available. This allows a
304  font family to be set where the family name is not the same as the font name. However it also
305  means an invalid family name can be set, leading to the default font being used, instead of an
306  exception being thrown. See https://github.com/mkoppanen/imagick/issues/77
307- Removed Zend MM support
308- Excluded deprecated methods:
309  * Imagick::getImageMatte()
310  * Imagick::colorFloodfillImage()
311  * Imagick::matteFloodfillImage()
312  * Imagick::paintFloodfillImage()
313  * Imagick::paintOpaqueImage()
314  * Imagick::paintTransparentImage()
315  * Imagick::mapImage()
316  * Imagick::recolorImage()
317  * Imagick::setImageIndex()
318  * Imagick::getImageIndex()
319  * Imagick::getImageSize()
320  * Imagick::setImageAttribute()
321  * Imagick::getImageAttribute()
322  * Imagick::mosaicImages()
323  * Imagick::averageImages()
324  * Imagick::flattenImages()
325    This is replaced by $im = $im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN)
326  * Imagick::getImageChannelExtrema()
327  * Imagick::getImageExtrema()
328- Ini file changes
329  * Added imagick.skip_version_check. Imagick now checks that it was compiled against the same version of
330  ImageMagick that it is being run with, and will give a warning if it was compiled against a different
331  version of ImageMagick. The skip_version_check setting allows you to suppress this warning. However
332  it is strongly recommended to use the version of ImageMagick that Imagick was compiled against.
333- Misc:
334  * CI now compiles with CFLAGS="-Wno-deprecated-declarations -Wdeclaration-after-statement -Werror"
335
3363.2.0RC1
337- Fix bug #66098: Segfault in zval_addref_p
338
3393.2.0b2
340- A lot of internal improvements on the code
341- Added ImagickPixel::isPixelSimilar and deprecate ImagickPixel::isSimilar #10
342- Added imagick::smushimages
343- Added imagick::blueshiftimage and imagick::clampimage
344- Added Imagick::autolevelimage
345- Added constants:
346    Imagick::ALPHACHANNEL_REMOVE
347    Imagick::ALPHACHANNEL_FLATTEN
348    Imagick::RESOURCETYPE_THREAD
349    Imagick::COMPOSITE_CHANGEMASK
350    Imagick::COMPOSITE_LINEARLIGHT
351    Imagick::COMPOSITE_DIVIDE
352    Imagick::COMPOSITE_DISTORT
353    Imagick::COMPOSITE_BLUR
354    Imagick::COMPOSITE_PEGTOPLIGHT
355    Imagick::COMPOSITE_VIVIDLIGHT
356    Imagick::COMPOSITE_PINLIGHT
357    Imagick::COMPOSITE_LINEARDODGE
358    Imagick::COMPOSITE_LINEARBURN
359    Imagick::COMPOSITE_MATHEMATICS
360    Imagick::COMPOSITE_MODULUSADD
361    Imagick::COMPOSITE_MODULUSSUBTRACT
362    Imagick::COMPOSITE_MINUSDST
363    Imagick::COMPOSITE_DIVIDEDST
364    Imagick::COMPOSITE_DIVIDESRC
365    Imagick::COMPOSITE_MINUSSRC
366    Imagick::COMPOSITE_DARKENINTENSITY
367    Imagick::COMPOSITE_LIGHTENINTENSITY
368    Imagick::FILTER_KAISER
369    Imagick::FILTER_WELSH
370    Imagick::FILTER_PARZEN
371    Imagick::FILTER_LAGRANGE
372    Imagick::FILTER_SENTINEL
373    Imagick::FILTER_BOHMAN
374    Imagick::FILTER_BARTLETT
375    Imagick::FILTER_JINC
376    Imagick::FILTER_SINCFAST
377    Imagick::FILTER_ROBIDOUX
378    Imagick::FILTER_LANCZOSSHARP
379    Imagick::FILTER_LANCZOS2
380    Imagick::FILTER_LANCZOS2SHARP
381    Imagick::FILTER_ROBIDOUXSHARP
382    Imagick::FILTER_COSINE
383    Imagick::FILTER_SPLINE
384    Imagick::FILTER_LANCZOSRADIUS
385    Imagick::COMPRESSION_ZIPS
386    Imagick::COMPRESSION_PIZ
387    Imagick::COMPRESSION_PXR24
388    Imagick::COMPRESSION_B44
389    Imagick::COMPRESSION_B44A
390    Imagick::COMPRESSION_LZMA
391    Imagick::COMPRESSION_JBIG1
392    Imagick::COMPRESSION_JBIG2
393
3943.2.0b1
395- Added Countable interface to Imagick class
396- Added experimental support for Zend MM. If compiled with --enable-imagick-zend-mm
397  Imagick will respect PHP memory limits
398- Added additional parameter to writeImageFile to allow setting format
399- Distribute tests as part of the release
400- Fixed Bug #65043: Destroy and clear method do the same things
401- Fixed Bug #64945: ZEND_ACC_ALLOW_STATIC vs ZEND_ACC_STATIC
402- A lot of internal refactoring: rewrite macros as functions, clean up naming etc
403
4043.1.2
405- Fixed ZTS build
406- Added LICENSE file to comply with Fedora Packaging Guidelines
407- Fixed memory leaks
408- Added mime type to identifyImage
409
4103.1.1
411- Reworked identifyImage method
412
4133.1.0
414- Releasing RC3 as is
415
4163.1.0RC3
417- Fixed building against latest ImageMagick versions (#GH-2)
418- Fixed thumbnail resize bug (#GH-1)
419- Fixed building against latest PHP versions
420
4213.1.0RC2
422- Fixed PHP bug #61879 (Imagick writeImages no longer works with PHP5.4)
423
4243.1.0RC1
425- Fixed PECL Bug #22722
426- Fixed possible memory leaks in error scenarios
427- Added PHP 5.4 support
428
4293.1.0b1
430- Fixed PECL Bug #21229
431- Fixed PECL Bug #20636
432- Deprecated clone() method in favour of clone keyword
433- Added ImagickDraw::setResolution
434- Internal refactoring on read/write code
435
4363.0.1
437- Fixed PECL bug #17244
438
4393.0.1RC2
440- Fixed a bug which caused failure in writing files with format prefix
441  (such as png:test.jpg)
442
4433.0.1RC1
444- Fixed build against PHP 5.1.x
445- Fixed PECL bug #17892
446
4473.0.0
448- No bugs reported against RC2 so releasing as stable
449
4503.0.0RC2
451- Added set/getColorspace
452- Added transformImageColorspace (Patrick Durold)
453- Fix writeImage logic error in filename_len checking.
454- Fix conversion to double in affine matrices
455- s,function_entry,zend_function_entry, (Johannes)
456
4573.0.0RC1
458- Fixes a crash when setResourceLimit is called statically
459- Fixes PECL bug #16932 Unable to read image from the filehandle
460- Return empty string if original value is empty in:
461  * ImagickDraw::getClipPath
462  * ImagickDraw::getEncoding
463  * ImagickDraw::getFont
464  * ImagickDraw::getFontFamily
465- More relaxed validation on affinematrices
466- Initialize the counter properly in polygons. Thanks to Etienne Kneus
467
4683.0.0b2
469- Fixes building against PHP 5.2.x
470
4713.0.0b1
472- Fixes incorrect error message "wand contains no images"
473- Change cropthumbnailimage behavior to actually do what it is supposed to do
474- setimageartifact, getimageartifact, deleteimageartifact
475- added fill param to thumbnailImage
476- Added support for using imagick objects in other extensions
477
4782.3.0
479- imagick::setImageVirtualPixelMethod not deprecated anymore
480- fixed windows build
481
4822.3.0RC3
483- Closed bug reports and pushing out RC just in case before stable.
484
4852.3.0RC2
486- Fixed image reading routines. Page defitions (test.pdf[0]) were broken on RC1
487- Fixed imagick::colorizeImage, it had no effect on images
488
4892.3.0RC1
490- Fixes PECL bug #16085 (Twice crop returns invalid result)
491- Removed unnecessary checks
492
4932.3.0b1
494- Fixed compilation against older ImageMagick versions (Patch by Tim Herzog)
495- Fixed getImageMatte to actually return boolean instead of int
496
497- Added methods:
498* Imagick::getImageMimeType
499* Imagick::writeimagefile
500* Imagick::writeimagesfile
501* Imagick::resetimagepage
502* Imagick::setimageclipmask
503* Imagick::getimageclipmask
504* Imagick::animateimages
505* Imagick::recolorimage
506* Imagick::floodfillpaintimage
507* Imagick::opaquepaintimage
508* Imagick::transparentpaintimage
509* Imagick::decipherimage
510* Imagick::encipherimage
511* Imagick::getimagealphachannel
512* Imagick::getimagechanneldistortions
513* Imagick::getimagegravity
514* Imagick::setimagegravity
515* Imagick::remapimage
516* Imagick::exportimagepixels
517* Imagick::getimagechannelkurtosis
518* Imagick::functionimage
519* Imagick::importImagePixels
520* Imagick::sparseColorImage
521* Imagick::deskewImage
522* Imagick::segmentImage
523
524* Imagickdraw::gettextkerning
525* Imagickdraw::settextkerning
526* Imagickdraw::gettextinterwordspacing
527* Imagickdraw::gettextinterwordspacing
528
529* ImagickPixel::getColorValueQuantum
530* ImagickPixel::setColorValueQuamtum
531* ImagickPixel::getIndex
532* ImagickPixel::setIndex
533
5342.2.2
535- No bugs reported against RC4 so releasing it as is
536
5372.2.2RC4
538- Check for ImageMagick version in config.m4 before trying to search for headers
539- Fixed memory leak where pointinfo is used
540- Fixed incorrect memory handling of array where php array is converted to array of doubles
541- Cleaned up image writing routines
542- Added missing semicolon on constant registration
543- Added distortion and alphachannel constants
544
5452.2.2RC3
546- Fixed clone keyword to actually clone the wand ptr
547- Imagick progress monitor name is now correctly cloned
548- Fixes PECL Bug #15614
549
5502.2.2RC2
551+ Added Imagick::setImageProgressmonitor and Imagick::orderedPosterizeImage
552- Fixes http://imagemagick.org/discourse-server/viewtopic.php?f=18&t=12828
553- Fixes error with empty exception messages
554- Fixes PECL Bug #15332
555- Fixed a possible memory leak in Imagick::convolveImage
556
5572.2.2RC1
558- Fixes Pecl bug #15321
559- Added getImageCompressionQuality
560- Fixes building against PHP 5.3
561
5622.2.1
563- No bugs reported against RC2 so releasing it as is
564
5652.2.1RC2
566- Fixed ZTS build
567
5682.2.1RC1
569- Fixes a small memory leak when casting a string to ImagickPixel object
570- Added new constants
571- Added getImageChannelRange method
572- Some cleaning up on the syntax
573
5742.2.0
575- Changes since 2.1.1:
576* Major refactoring of the file structure
577* Fixes bugs related to the refactoring
578
5792.2.0RC1
580- Fix build on Mac related to duplicate symbols
581
5822.2.0b2
583- Closes PECL Bugs #13841 and #13787
584
5852.2.0b1
586- Major refactoring of the internal file structure
587
5882.1.1
589- Fixed a bug with fit parameter when scaling images with scaling ratio 1:1
590  * This is a minor BWC break. Scripts relying on incorrect behavior might need revisiting.
591
5922.1.1RC1
593- Fixed building against ImageMagick 6.3.8-x
594
5952.1.0
596- Addded setImageAlphaChannel method
597- Fixed sharpenImage parameters being reversed
598- Fixed building with pre 5.2 versions
599
6002.1.0RC3
601- Fixes PECL Bug #12851
602- Some major housekeeping changing numeral values to constants
603
6042.1.0RC2
605- Closes PECL Bugs #12463 and #12479
606- Fixes the behavior of flattenImages and fximage
607- Fixes incorrect thumbnail behavior
608- Fixes a bug in Imagick::cropThumbnailImage
609- Added new constant Imagick::NOISE_RANDOM
610
6112.1.0RC1
612+ All methods that expect ImagickPixel now allow a string representing the color
613+ Added support for pixeliterator in all supported ImageMagick versions.
614+ ImagickPixelIterator now implements the iterator interface
615+ It is now possible to set the row with region iterator
616+ Added MAXPATHLEN checks for image reads/writes
617+ Added a fix to Imagick::cropThumbnailImage() to check if images are already at the desired size
618+ Fixed a memory leak in Imagick::getImageHistogram()
619+ Speed improvements to Imagick::cropThumbnailImage()
620+ Added interpolate constants
621+ Fixed ImagickPixel::getColor()
622+ Marked ImagickDraw::__construct() with ZEND_ACC_CTOR
623+ Added fit parameter and proportional scaling to:
624- Imagick::adaptiveResizeImage()
625- Imagick::scaleImage()
626- Imagick::resizeImage()
627+ Added imagick.locale_fix ini setting to fix drawing bug on some locale
628+ Suppressed warnings in readImageFile and pingImageFile (PECL Bug #12367)
629+ Added methods:
630- ImagickPixel::clone()
631- ImagickPixel::getColorAsString()
632- Imagick::mergeImageLayers()
633- Imagick::paintFloodfillImage()
634- Imagick::setFont()
635- Imagick::getFont()
636- Imagick::setPointsize()
637- Imagick::getPointsize()
638
6392.0.1
640+ ImagickDraw::setFont and ImagickDraw::setFontFamily now allow only valid fonts
641+ Added IMAGICK_EXTVER and IMAGICK_EXTNUM constants
642+ Added check for empty or invalid pseudo format string in Imagick::newPseudoImage
643+ Fixed incorrect arg hinting for Imagick::compareImageChannels
644
6452.0.1RC1
646+ Added Imagick::distortImage and Imagick::setlastiterator
647+ Added optional fourth parameter to newImage to set the format when creating a new canvas
648+ Fixed fitting to zero size image in Imagick::thumbnailImage
649+ Fixed the destroy methods.
650+ Most of the operations that read / add images to the stack move the iterator position to the last element
651+ Fixed memleaks in methods that replace the internal MagickWand* pointer
652
6532.0.0
654+ Added Imagick::extentImage
655+ Added Imagick::IMAGICK_VERSION_NUMBER and Imagick::IMAGICK_VERSION_STRING constants
656+ Fixed a possible crash in Imagick::newPseudoImage
657
6582.0.0RC4
659+ Moved getimagelength into #if block
660+ Added optional third parameter to thumbnailImage
661+ Added second optional parameter to getImageProperties and getImageProfiles to return just the available properties.
662+ Closes PECL Bug #12006
663
6642.0.0RC3
665+ Closes PECL Bug #12006
666+ Fixes a possible crash in queryFontMetrics
667+ New methods:
668+ Imagick::clutImage
669+ Imagick::setImage
670+ Imagick::getImageLength
671+ Imagick::getImageOrientation
672+ Imagick::setImageOrientation
673+ Imagick::getImageProperties
674+ Imagick::getImageProfiles
675
6762.0.0RC2
677+ Added support for forcing image format during write operations.
678+ Added more interlace constants. They are present if imagick is compiled against ImagickMagick 6.3.4 or newer.
679+ Added Imagick::getImageAttribute.
680+ Added LAYERMETHOD constants. Available if compiled against ImageMagick 6.2.8 or later.
681+ Closes PECL Bug #11934 - setImageVirtualPixelMethod triggers exception
682+ Fixed safe_mode and open_basedir bypass for __construct, readImage, readImages and pingImage
683
6842.0.0RC1
685+ Suppress error when reading image from a stream.
686+ Fixed allow_url_fopen bypass in Imagick::newPseudoImage().
687+ Fixed imagick::__tostring to return empty string if the object doesnt contain images.
688+ Fixed a problem with Imagick::getImagesBlob() when an older version of ImageMagick is used.
689+ Fixed a crash on Windows when no arguments are passed to the Imagick constructor.
690+ Fixed a crash when using a threaded SAPI under Windows.
691+ Fixed a bug in ImagickDraw::affine().
692+ Added Imagick::getIteratorIndex() and Imagick::setIteratorIndex().
693+ Added Imagick::readImages()
694
6952.0.0b3
696+ Closes PECL Request #11513
697+ Fixes ImagickPixel bug reported by Imran Nazar.
698+ Fixed Imagick::setImageDispose and Imagick::setImageUnits.
699+ Fixed Imagick::queryFontMetrics to autodetect multiline text if multiline argument is not passed or is null.
700+ Fixed open_basedir bypasses in Imagick::newPseudoImage
701+ Fixed "Undefined Exception" error messages
702
703NOTE: Using threaded SAPI in Windows is not currently recommended.
704
7052.0.0b2
706+ Fixed open_basedir bypasses.
707+ Fixed PECL Bug #11328
708+ Added methods:
709- Imagick::queryFonts()
710- Imagick::queryFontMetrics()
711
712NOTE: Using threaded SAPI in Windows is not currently recommended.
713
7142.0.0b1
715- fix PECL bug #10967 - supplied path fails to compile
716- Added new methods
717+ Imagick::displayImage()
718+ Imagick::displayImages()
719+ Imagick::cropThumbnailImage()
720+ Imagick::roundCorners()
721+ Imagick::polaroidImage()
722+ Imagick::getImageProperty()
723+ Imagick::setImageProperty()
724+ Imagick::newPseudoImage()
725+ Imagick::__toString()
726+ ImagickPixel::setColorCount()
727- Added missing DisposeType constants.
728- Merged ImagickPixel::getColorAsString and ImagickPixel::getColorAsNormalizedString into ImagickPixel::getColor( [bool normalized] )
729- Fixed wrong exception type in Imagick::setSamplingFactors
730- Removed useless check from ImagickPixelIterator::syncIterator
731- Renamed ImagickDraw::pushDrawingWand to ImagickDraw::push
732- Renamed ImagickDraw::popDrawingWand to ImagickDraw::pop
733
7342.0.0a3
735- Removed support for ImagickPixelIterator if compiled against older version of ImageMagick (below 6.2.8)
736- Fixed a lot of functions which were not present in older ImageMagick versions. (below 6.2.8)
737- Added support for passing color name as parameter for ImagickPixel constructor
738- Added support for passing a filename or an array of filenames to Imagick constructor
739- Fixed anomalies with ImagickPixelIterator exceptions
740- Fixed a possible segfault in Imagick::appendImages
741- Fixed double-free errors in some Imagick methods
742- Added composite operator constants.
743- Fixed ImagickPixelIterator::__construct to accept Imagick object as parameter.
744
745+ Some of the changes are a bit experimental so please report bugs.
746
7472.0.0a2
748- Fixed segfaults in ImagickDraw::getFont(), ImagickDraw::getFontFamily(),
749  ImagickDraw::getTextEncoding() and ImagickDraw::getClipPath()
750- Added a PHP version check to config.m4
751
7522.0.0a1
753- Initial Release
754
7550.9.13
756- Fixed compile error with newer versions of GraphicsMagick and ImageMagick
757- Fixed assertion when using imagick_setfillcolor
758- Fixed segfault when an empty blob is loaded
759- Use new API for fetching support image formats / fonts
760
7610.9.11
762- Fix some segfaults on errors (by Andrei Nigmatulin)
763- EXPERIMENTAL support for ImageMagick >= 6.0.0 (hint by Stanislav Yadykin). Please report successes or failures.
764
7650.9.10
766- A ./configure change release only.
767- Changed config.m4 for checking for correct ImageMagick Version.
768  ImageMagick >= 5.5.3 and < 6.6.0 or GraphicsMagick >= 1.0.0 are needed.
769- ImageMagick >= 6.0.0 does not work currently. Patches are welcome ;)
770
7710.9.9
772- added function imagick_set_image_comment() for setting the comment attribute
773of an image.
774- function imagick_setcompressiontype() was not setting the correct structure.
775This was identified and tested by Sergio Salvatore (sergio@cucinalogica.com).
776- added function imagick_transparent() for setting a particular color to be
777transparent within an image.
778- changed how certain errors are handled in _php_imagick_is_error() to be
779less restrictive. This apparently helps fix issues with certain types
780of images that otherwise appear corrupt. Thanks to Hien Duy Nguyenxi
781(hdn@umich.edu) for finding this, recommending the change and testing it.
782- added imagick_set_image_quality() for manipulating the quality of the
783resultant image.
784- added examples/set_image_quality.php for testing the
785imagick_set_image_quality() function. Thanks to Derrick DeLoreno Threatt
786(dthreatt@digitalcreations.net) for bringing up the need for this function
787and testing it.
788
7890.9.8
790- fixed critical error in call to strlen() in _php_imagick_set_last_error().
791I strongly recommend you upgrade.
792
7930.9.7
794- fixed bug in imagick_free() that would cause it to SEGFAULT everytime
795it's called.
796- fixed to work with versions of ImageMagick >= 5.5.7 - special thanks to
797James Huston (hustonjs@itadevelopment.com) for helping make this happen.
798- test compiled against ImageMagick 5.5.3, 5.5.6 and 5.5.7 with success.
799- test compiled against GraphicsMagick 1.0.1 with success.
800
8010.9.6
802- functions added:
803imagick_getcolorspace()
804imagick_error()
805- added a new example called transparent_1x1.html and some explanatory text.
806I can think of many uses for this code.
807- thanks to James Huston (hustonjs@itadevelopment.com) for suggesting
808imagick_getcolorspace() and testing it out.
809- added GraphicsMagick (http://www.graphicsmagick.org) support to configure
810script (enable it with --with-imagick-gm)
811- imagick_readimage() now returns false if ImageMagick ReadImage() fails.
812- imagick_error() returns 1 string representing any errors that have occurred
813on an operation. IT IS LARGELY UNTESTED! Beware! However, you can now
814do things like:
815$handle = imagick_readimage( "image.jpg" ) or die( imagick_error() ) ;
816- fixed configure script. It honours now values returned by Magick-config.
817
8180.9.5
819- functions added:
820imagick_newimagelist()
821imagick_pushlist()
822imagick_poplist()
823imagick_mosaic()
824imagick_setcompressiontype()
825imagick_setcompressionquality()
826- modified how all functions check to see if ImageMagick has been initialized.
827- added a number of new examples for demonstrating how to use image lists.
828- fixed bugs in _php_imagick_alloc_handle() and _php_imagick_clear_errors()
829causing core dump when working with image lists. I wasn't checking to make
830sure the structures I was examining were allocated.
831- thanks to James Huston (hustonjs@itadevelopment.com) for suggesting
832imagick_setcompressiontype() and imagick_setcompressionquality() and
833testing them.
834- added supporting IMAGICK_COMPRESSION_* constants for use with
835imagick_setcompressiontype().
836- renamed imagick_setcompression() to imagick_setcompressiontype().
837(note: this was done before the new version was released so no users should
838be impacted.)
839
8400.9.4
841- functions added:
842imagick_flatten()
843imagick_getmagick()
844imagick_setfillopacity()
845- fixed bad code in these functions:
846imagick_despeckle()
847imagick_edge()
848imagick_emboss()
849imagick_enhance()
850imagick_gaussianblur()
851imagick_medianfilter()
852imagick_motionblur()
853imagick_reducenoise()
854imagick_shade()
855imagick_sharpen()
856imagick_spread()
857imagick_unsharpmask()
858- for the above functions, if call to corresponding ImageMagick
859function the module would probably core dump. If it didn't the
860results would be really buddy and weird.
861- setfillopacity() thanks to Allen Condit, condit@isri.unlv.edu.
862
8630.9.3
864- functions added:
865imagick_zoom()
866- the difference between imagick_zoom() and imagick_resize() is
867that zoom applies the blur and filter that are defined by
868the image. It is a much simpler way of resizing an image.
869- added imagick.dsp and modifications for compiling under Windows.
870- changed all instances of le_handle to le_imagick_handle to avoid
871future conflicts.
872
8730.9.2
874- functions added:
875imagick_profile()
876- created IMAGICK_PROFILE_* to support imagick_profile().
877- this release is significant because of the issue with Microsoft IE
878where the image's profile causes the browser to not properly render
879images (you only get red X's). See this posting:
880http://studio.imagemagick.org/pipermail/magick-users/2002-September/005072.html
881- added this filter IMAGICK_FILTER_UNKNOWN. If the user specifies
882this filter to imagick_resize(), the resize function will take
883whatever filter is defined by the image.
884- modified imagick_resize() to take 6th optional parameter that is
885the modifier to the geometry to facility building geometries such
886as 800x600+200+200! or 450x230>.
887- modified imagick_scale() to take 4th optional parameter that is
888the modifier to the geometry to facility building geometries such
889as 800x600+200+200! or 450x230>.
890- modified imagick_sample() to take 4th optional parameter that is
891the modifier to the geometry to facility building geometries such
892as 800x600+200+200! or 450x230>.
893
8940.9.1
895- functions added:
896imagick_chop()
897imagick_crop()
898imagick_flip()
899imagick_flop()
900imagick_roll()
901imagick_getimagedepth()
902imagick_getnumbercolors()
903imagick_isgrayimage()
904imagick_ismonochromeimage()
905imagick_isopaqueimage()
906imagick_ispaletteimage()
907imagick_ordereddither()
908imagick_composite()
909- Added IMAGICK_COMPOSITE_OP_* for use with imagick_composite().
910
9110.9.0.1
912IMPORTANT!!!
913This release breaks Backwards Compatibility with the 0.1.x series of ext/imagick. read the examples for more information (in $doc_dir/imagick/examples).
914
915Big Credits go to Michael C. Montero, who wrote the whole extension from scratch. Without him, we would still be at 0.1.x. He will be the future lead for this package (as soon as he has an account on pear).
916
9170.2-0.5 were never released within PEAR.
918
919version 0.9.0.1:
920- more appropriate changelog/notes, no changes in code.
921
922version 0.9:
923- functions added:
924imagick_next()
925imagick_prev()
926imagick_first()
927imagick_goto()
928imagick_getlistsize()
929imagick_getlistindex()
930imagick_getimagefromlist()
931imagick_blob2image()
932imagick_reducenoise()
933imagick_shade()
934imagick_sharpen()
935imagick_spread()
936imagick_threshold()
937imagick_unsharpmask()
938- cut over deprecation reporting to a more standized and easier to use method
939- cut over all php_error calls to standard method
940- added Christian's code to info function for displaying a list of supported image formats
941- rewrote all code to use proper parameter parsing function
942- fixed minor issue with a number of example files; was nothing critical
943
944version: 0.5a
945- functions added:
946imagick_getcanvas()
947imagick_blur()
948imagick_despeckle()
949imagick_edge()
950imagick_emboss()
951imagick_enhance()
952imagick_gaussianblur()
953imagick_medianfilter()
954imagick_motionblur()
955- one major change - renamed everything to imagick*; I've joined my efforts with Christian Stocker who had a previously written but smaller extension
956- magick_getcanvas() allows you to create a blank image to draw on
957- changed comment header in imagick.h to match the one in imagick.c
958- added Christian Stocker to credits
959- moved over to Christian Stocker's config.m4, removed the need for gen_configm4
960- rewrote INSTALL to reflect new config.m4
961- slight modifications to config.m4 to get it to work properly
962- added package.xml
963- removed ChangeLog, everything is now in package.xml
964- removed imagick_free_reason() and imagick_free_description() since they are no longer necessary
965- preceded all internal functions with _php_
966- created imagick_read() for backward compatibility with old extension
967- created imagick_write() for backward compatibility with old extension
968
969version 0.4a
970- functions added:
971magick_writeimages()
972magick_destroyhandle()
973magick_image2blob()
974magick_drawarc()
975magick_drawcircle()
976magick_drawpoint()
977magick_border()
978magick_frame()
979magick_raise()
980magick_getwidth()
981magick_getheight()
982magick_getmimetype()
983magick_setfillcolor()
984magick_setfontface()
985magick_charcoal()
986magick_implode()
987magick_oilpaint()
988magick_solarize()
989magick_swirl()
990magick_wave()
991- more preparation for image lists
992- fixed incorrect comments in some examples
993- fixed incorrect calls to magick_failedreason() and magick_faileddescription() in most examples
994- a number of examples weren't exiting properly on errors, that's been fixed
995- phpinfo() now displays available font family and font names
996- coolest function so far: magick_oilpaint(). The output is awesome!
997- added MaxRGB to phpinfo() section
998
999version 0.2a
1000- functions added:
1001magick_rotate()
1002magick_shear()
1003magick_contrast()
1004magick_equalize()
1005magick_gamma()
1006magick_level()
1007magick_modulate()
1008magick_negate()
1009magick_normalize()
1010magick_drawellipse()
1011- slight changes to output of gen_configm4
1012- fixed comments in all examples after the initial magick_readimage(), they were wrong
1013- fixed all examples so they exit properly on errors
1014- fixed all examples so they work as either standalone script or web page; they do better output as well
1015- fixed output of magick info. when calling phpinfo()
1016- more commenting
1017- significantly better error handling
1018
10190.9
1020IMPORTANT!!!
1021This release breaks BC with the 0.1.x series of ext/imagick.
1022read the examples for more information (in $doc_dir/imagick/examples)
1023
10240.2-0.5 were never released within PEAR.
1025
1026- functions added:
1027imagick_next()
1028imagick_prev()
1029imagick_first()
1030imagick_goto()
1031imagick_getlistsize()
1032imagick_getlistindex()
1033imagick_getimagefromlist()
1034imagick_blob2image()
1035imagick_reducenoise()
1036imagick_shade()
1037imagick_sharpen()
1038imagick_spread()
1039imagick_threshold()
1040imagick_unsharpmask()
1041- cut over deprecation reporting to a more standized and easier
1042to use method
1043- cut over all php_error calls to standard method
1044- added Christian's code to info function for displaying a list of
1045supported image formats
1046- rewrote all code to use proper parameter parsing function
1047- fixed minor issue with a number of example files; was nothing
1048critical
1049
10500.1.2
1051- Added imagick_border(). (pierre-alain joye)
1052- Fixed return of annotate and rotate (true on success). (pierre-alain joye)
1053
10540.1.1
1055- Make it compatible with ImageMagick 5.4.5 (and this is also the needed version now)
1056- adjust package.xml to the new "pear build" command
1057