imagick: Changelog

Version Message
3.7.0 - Added:
* Imagick::COMPOSITE_SALIENCY_BLEND
3.7.0RC1 - Added:
* function Imagick::deleteOption(string $option): bool {}
* function Imagick::getBackgroundColor(): ImagickPixel {}
* function Imagick::getImageArtifacts(string $pattern = "*"): array {}
* function Imagick::getImageKurtosis(): array {}
* function Imagick::getImageMean(): array {}
* function Imagick::getImageRange(): array {}
* function Imagick::getInterpolateMethod(): int {}
* function Imagick::getOptions(string $pattern = "*"): array {}
* function Imagick::getOrientation(): int {}
* function Imagick::getResolution(): array {}
* function Imagick::getType(): int {}
* function Imagick::implodeImageWithMethod(float $radius, int $pixel_interpolate_method): bool {}
* function Imagick::oilPaintImageWithSigma(float $radius, float $sigma)
* function Imagick::polaroidWithTextAndMethod(ImagickDraw $settings, float $angle, string $caption, int $method): bool {}
* function Imagick::polynomialImage(array $terms): bool {}
* function Imagick::setDepth(int $depth): bool {}
* function Imagick::setExtract(string $geometry): bool {}
* function Imagick::setInterpolateMethod(int $method): bool{}
* function Imagick::setOrientation(int $orientation): bool {}
* function Imagick::spreadImageWithMethod(float $radius, int $interpolate_method): bool {}
* function Imagick::swirlImageWithMethod(float $degrees, int $interpolate_method): bool {}
* function Imagick::waveImageWithMethod(float $amplitude, float $length, int $interpolate_method): bool {}
* Imagick::IMAGE_TYPE_BILEVEL
* Imagick::IMAGE_TYPE_GRAYSCALE
* Imagick::IMAGE_TYPE_GRAYSCALE_ALPHA
* Imagick::IMAGE_TYPE_PALETTE
* Imagick::IMAGE_TYPE_PALETTE_ALPHA
* Imagick::IMAGE_TYPE_TRUE_COLOR
* Imagick::IMAGE_TYPE_TRUE_COLOR_ALPHA
* Imagick::IMAGE_TYPE_COLOR_SEPARATION
* Imagick::IMAGE_TYPE_COLOR_SEPARATION_ALPHA
* Imagick::IMAGE_TYPE_OPTIMIZE
* Imagick::IMAGE_TYPE_PALETTE_BILEVEL_ALPHA
* Imagick::COMPOSITE_SEAMLESS_BLEND
- Changed:
* Imagick::setImageArtifact can now take null for the string value.
* Return type for Imagick::getImageArtifact is string|null instead of string.
3.6.0 - No change from 3.6.0RC2
3.6.0RC2 - Fixes:
* Remove deprecated message from Imagick::roundCorners()
- Added:
* Imagick::addNoiseImageWithAttenuate()
3.6.0RC1 - Imagick::getImageInterlaceScheme is undeprecated. It's the appropriate function to call to get the image interlace setting.
- Image formats are now normalised to lower case.
- Imagick::getImageIndex and Imagick::setImageIndex are undeprecated and work on ImageMagick 7. They call MagickGetIteratorIndex and MagickSetIteratorIndex internally.
- Imagick::averageImages is undeprecated. For IM 7 it now calls EvaluateImages(wand->images,MeanEvaluateOperator).
- Imagick::flattenImages is undeprecated. For IM 7 it now calls MagickMergeImageLayers(intern->magick_wand, FlattenLayer); internally.
- Imagick::getImageSize is undeprecated. For IM 7 it now calls MagickGetImageLength internally.
- Imagick::roundCornersImage is undeprecated and available on IM7.
- Fixes:
* Imagick::borderImage() changed internally to use OverCompositeOp rather than AtopCompositeOp for ImageMagick > 7. If you need the old behaviour, please use Imagick::borderImageWithComposite() instead, which allows you to set the composite method.
* Imagick::frameImage() changed internally to use OverCompositeOp rather than AtopCompositeOp for ImageMagick > 7. If you need the old behaviour, please use Imagick::frameImageWithComposite() instead, which allows you to set the composite method.
* Imagick::profileImage() fixed to allow null as second paramter again. If you can't upgrade to this version yet, pass in "", which has the same effect.
* Imagick::ALPHACHANNEL_COPY and Imagick::ALPHACHANNEL_OPAQUE should be available on IM7.
* Imagick::setImageMatteColor() should be available on IM7.
- Added:
* Imagick::borderImageWithComposite() same as Imagick::borderImage() but allows user to set composite operator used.
* Imagick::frameImageWithComposite() same as Imagick::frameImage() but allows user to set composite operator used.
* function Imagick::cannyEdgeImage
* function Imagick::setSeed
* function Imagick::waveletDenoiseImage
* function Imagick::meanShiftImage
* function Imagick::kmeansImage
* function Imagick::rangeThresholdImage
* function Imagick::autoThresholdImage
* function Imagick::bilateralBlurImage
* function Imagick::claheImage
* function Imagick::channelFxImage
* function Imagick::colorThresholdImage
* function Imagick::complexImages
* function Imagick::interpolativeResizeImage
* function Imagick::levelImageColors
* function Imagick::levelizeImage
* function Imagick::orderedDitherImage
* function Imagick::whiteBalanceImage
3.5.1 - Better detection of appropriate OpenMP library to use, i.e. GCC or Clang.
3.5.1RC1 - Better detection of appropriate OpenMP library to use, i.e. GCC or Clang.
3.5.0 - Fixed multiple parameter information issues found in 3.5.0RC1.
- 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.
- 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.
- 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
- Various pieces of work have been done to make GOMP not segfault including:
* Call omp_pause_resource_all when available during shutdown.
* 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.
- Fixes:
* Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel be available when using Imagick with ImageMagick version 6.7.8-x
* Imagick::morphology now no longer ignores channel parameter
* ImagickPixel::setIndex() takes a Quantum value (aka float in HDRI mode, int in non-HDRI mode).
* ImagickPixel::getColorValue() always returns an int value.
- Added:
* PHP 8.0 support.
* Location check for ImageMagick 7 for NixOS and Brew.
* Imagick::houghLineImage(int $width, int $height, float $threshold): bool {}
* Imagick::setImagePixelColor(int $x, int $y, ImagickPixel|string $color)
* Imagick::setImageMask(Imagick $clip_mask, int $pixelmask_type)
* Imagick::getImageMask(int $pixelmask_type)
* Imagick::VIRTUALPIXELMETHOD_DITHER
* Imagick::VIRTUALPIXELMETHOD_RANDOM
* Imagick::COMPOSITE_FREEZE
* Imagick::COMPOSITE_INTERPOLATE
* Imagick::COMPOSITE_NEGATE
* Imagick::COMPOSITE_REFLECT
* Imagick::COMPOSITE_SOFTBURN
* Imagick::COMPOSITE_SOFTDODGE
* Imagick::COMPOSITE_STAMP
* Imagick::COMPOSITE_RMSE
* Imagick::COMPRESSION_DWAA
* Imagick::COMPRESSION_DWAB
* Imagick::EVALUATE_INVERSE_LOG
* Imagick::COLORSPACE_DISPLAYP3
* Imagick::COLORSPACE_ADOBE98
* Imagick::COLORSPACE_PROPHOTO
* Imagick::COLORSPACE_JZAZBZ
* Imagick::DISTORTION_RIGID_AFFINE
* Imagick::DISTORTION_BARRELINVERSE
* Imagick::STATISTIC_ROOT_MEAN_SQUARE
3.5.0RC2 - Fixed multiple parameter information issues found in 3.5.0RC1.
- 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.
- 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.
- 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
- Various pieces of work have been done to make GOMP not segfault including:
* Call omp_pause_resource_all when available during shutdown.
* 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.
- Fixes:
* Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel be available when using Imagick with ImageMagick version 6.7.8-x
* Imagick::morphology now no longer ignores channel parameter
- Added:
* PHP 8.0 support.
* Location check for ImageMagick 7 for NixOS and Brew.
* Imagick::houghLineImage(int $width, int $height, float $threshold): bool {}
* Imagick::setImagePixelColor(int $x, int $y, ImagickPixel|string $color)
* Imagick::setImageMask(Imagick $clip_mask, int $pixelmask_type)
* Imagick::getImageMask(int $pixelmask_type)
* Imagick::VIRTUALPIXELMETHOD_DITHER
* Imagick::VIRTUALPIXELMETHOD_RANDOM
* Imagick::COMPOSITE_FREEZE
* Imagick::COMPOSITE_INTERPOLATE
* Imagick::COMPOSITE_NEGATE
* Imagick::COMPOSITE_REFLECT
* Imagick::COMPOSITE_SOFTBURN
* Imagick::COMPOSITE_SOFTDODGE
* Imagick::COMPOSITE_STAMP
* Imagick::COMPOSITE_RMSE
* Imagick::COMPRESSION_DWAA
* Imagick::COMPRESSION_DWAB
* Imagick::EVALUATE_INVERSE_LOG
* Imagick::COLORSPACE_DISPLAYP3
* Imagick::COLORSPACE_ADOBE98
* Imagick::COLORSPACE_PROPHOTO
* Imagick::COLORSPACE_JZAZBZ
* Imagick::DISTORTION_RIGID_AFFINE
* Imagick::DISTORTION_BARRELINVERSE
* Imagick::STATISTIC_ROOT_MEAN_SQUARE
3.5.0RC1 - 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.
- 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.
- 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
- Various pieces of work have been done to make GOMP not segfault including:
* Call omp_pause_resource_all when available during shutdown.
* 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.
- Fixes:
* Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel be available when using Imagick with ImageMagick version 6.7.8-x
* Imagick::morphology now no longer ignores channel parameter
- Added:
* PHP 8.0 support.
* Location check for ImageMagick 7 for NixOS and Brew.
* Imagick::houghLineImage(int $width, int $height, float $threshold): bool {}
* Imagick::setImagePixelColor(int $x, int $y, ImagickPixel|string $color)
* Imagick::setImageMask(Imagick $clip_mask, int $pixelmask_type)
* Imagick::getImageMask(int $pixelmask_type)
* Imagick::VIRTUALPIXELMETHOD_DITHER
* Imagick::VIRTUALPIXELMETHOD_RANDOM
* Imagick::COMPOSITE_FREEZE
* Imagick::COMPOSITE_INTERPOLATE
* Imagick::COMPOSITE_NEGATE
* Imagick::COMPOSITE_REFLECT
* Imagick::COMPOSITE_SOFTBURN
* Imagick::COMPOSITE_SOFTDODGE
* Imagick::COMPOSITE_STAMP
* Imagick::COMPOSITE_RMSE
* Imagick::COMPRESSION_DWAA
* Imagick::COMPRESSION_DWAB
* Imagick::EVALUATE_INVERSE_LOG
* Imagick::COLORSPACE_DISPLAYP3
* Imagick::COLORSPACE_ADOBE98
* Imagick::COLORSPACE_PROPHOTO
* Imagick::COLORSPACE_JZAZBZ
* Imagick::DISTORTION_RIGID_AFFINE
* Imagick::DISTORTION_BARRELINVERSE
* Imagick::STATISTIC_ROOT_MEAN_SQUARE
3.4.4 - 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.
- Added:
* function Imagick::optimizeImageTransparency()
* METRIC_STRUCTURAL_SIMILARITY_ERROR
* METRIC_STRUCTURAL_DISSIMILARITY_ERROR
* COMPRESSION_ZSTD - https://github.com/facebook/zstd
* COMPRESSION_WEBP
* CHANNEL_COMPOSITE_MASK
* 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)."
* Imagick now explicitly conflicts with the Gmagick extension.
- Fixes:
* Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel be available when using Imagick with ImageMagick version 6.7.8-x
* Bug 77128 - Imagick::setImageInterpolateMethod() not available on Windows
* Prevent memory leak when ImagickPixel::__construct called after object instantiation.
* Prevent segfault when ImagickPixel internal constructor not called.
* Imagick::setResourceLimit support for values larger than 2GB (2^31) on 32bit platforms.
* Corrected memory overwrite in Imagick::colorDecisionListImage()
* Bug 77791 - ImagickKernel::fromMatrix() out of bounds write.
- Deprecated:
* The following functions have been deprecated:
ImagickDraw, matte
Imagick::averageimages
Imagick::colorfloodfillimage
Imagick::filter
Imagick::flattenimages
Imagick::getimageattribute
Imagick::getimagechannelextrema
Imagick::getimageclipmask
Imagick::getimageextrema
Imagick::getimageindex
Imagick::getimagematte
Imagick::getimagemattecolor
Imagick::getimagesize
Imagick::mapimage
Imagick::mattefloodfillimage
Imagick::medianfilterimage
Imagick::mosaicimages
Imagick::orderedposterizeimage
Imagick::paintfloodfillimage
Imagick::paintopaqueimage
Imagick::painttransparentimage
Imagick::radialblurimage
Imagick::recolorimage
Imagick::reducenoiseimage
Imagick::roundcornersimage
Imagick::roundcorners
Imagick::setimageattribute
Imagick::setimagebias
Imagick::setimageclipmask
Imagick::setimageindex
Imagick::setimagemattecolor
Imagick::setimagebiasquantum
Imagick::setimageopacity
Imagick::transformimage
3.4.4RC2 - 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.
- Added:
* function Imagick::optimizeImageTransparency()
* METRIC_STRUCTURAL_SIMILARITY_ERROR
* METRIC_STRUCTURAL_DISSIMILARITY_ERROR
* COMPRESSION_ZSTD - https://github.com/facebook/zstd
* COMPRESSION_WEBP
* CHANNEL_COMPOSITE_MASK
* 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)."
* Imagick now explicitly conflicts with the Gmagick extension.
- Fixes:
* Bug 77128 - Imagick::setImageInterpolateMethod() not available on Windows
* Prevent memory leak when ImagickPixel::__construct called after object instantiation.
* Prevent segfault when ImagickPixel internal constructor not called.
* Imagick::setResourceLimit support for values larger than 2GB (2^31) on 32bit platforms.
* Corrected memory overwrite in Imagick::colorDecisionListImage()
* Bug 77791 - ImagickKernel::fromMatrix() out of bounds write.
- Deprecated:
* The following functions have been deprecated:
ImagickDraw, matte
Imagick::averageimages
Imagick::colorfloodfillimage
Imagick::filter
Imagick::flattenimages
Imagick::getimageattribute
Imagick::getimagechannelextrema
Imagick::getimageclipmask
Imagick::getimageextrema
Imagick::getimageindex
Imagick::getimagematte
Imagick::getimagemattecolor
Imagick::getimagesize
Imagick::mapimage
Imagick::mattefloodfillimage
Imagick::medianfilterimage
Imagick::mosaicimages
Imagick::orderedposterizeimage
Imagick::paintfloodfillimage
Imagick::paintopaqueimage
Imagick::painttransparentimage
Imagick::radialblurimage
Imagick::recolorimage
Imagick::reducenoiseimage
Imagick::roundcornersimage
Imagick::roundcorners
Imagick::setimageattribute
Imagick::setimagebias
Imagick::setimageclipmask
Imagick::setimageindex
Imagick::setimagemattecolor
Imagick::setimagebiasquantum
Imagick::setimageopacity
Imagick::transformimage
3.4.3 No changes from 3.4.3RC4.
3.4.3RC4 - Fixes:
* Avoid internal segfault.
3.4.3RC3 - Fixes:
* Correct file permissions in built package.
3.4.3RC2 - Fixes:
* Imagick::getRegistry() now throws an exception if the key does not exist, rather than terminating the program.
* Prevent attempts to resize image to zero width or height, which is not supported by ImageMagick.
* Fix compiling on Windows issue.
- Added:
* function Imagick::setImageAlpha() which replaces Imagick::setOpacity()
3.4.3RC1 - Fixes:
* Imagick::transformImage and Imagick::orderedPosterizeImage now correctly excluded from
* Bug 72311 - compiling against PHP 7.1.
* Bug 72226 - regression for Imagick Exception classes being final on 7.x
* Corrected reference of constants. Imagick::METRIC_MEANERRORPERPIXELMETRIC from MeanErrorPerPixelMetric to MeanErrorPerPixelErrorMetric. Imagick::METRIC_PEAKSIGNALTONOISERATIO from PeakSignalToNoiseRatioMetric to PeakSignalToNoiseRatioErrorMetric
- Added:
* function Imagick::identifyImageType() : int returns one of the Imagick::IMGTYPE_* constants
* Imagick::INTERPOLATE_NEAREST_PIXEL for ImageMagick >= 7
* 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.
Legacy: FILTER_HANNING, new name: FILTER_HANN
Legacy: FILTER_WELSH, new name: FILTER_WELCH
* The Imagick::IMGTYPE_*MATTE* constants are deprecated for ImageMagick 7. Instead an appropriate Imagick::IMGTYPE_*MATTE* should be used.
IMGTYPE_GRAYSCALEMATTE => IMGTYPE_GRAYSCALEALPHA
IMGTYPE_PALETTEMATTE => IMGTYPE_PALETTEALPHA
IMGTYPE_TRUECOLORALPHA => IMGTYPE_TRUECOLORMATTE
IMGTYPE_COLORSEPARATIONALPHA => IMGTYPE_COLORSEPARATIONMATTE
IMGTYPE_PALETTEBILEVELALPHA => IMGTYPE_PALETTEBILEVELMATTE
* Several ALPHACHANNEL_* constants are only available in ImageMagick < 7
IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_RESET", ResetAlphaChannel);
IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_COPY", CopyAlphaChannel);
IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_OPAQUE", OpaqueAlphaChannel);
* Several ALPHACHANNEL_* constants are only available in ImageMagick >= 7. These constants re-use the values of the constants removed.
IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_ON", OnAlphaChannel);
IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_OFF", OffAlphaChannel);
IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_DISCRETE", DiscreteAlphaChannel);
3.4.2 - Fixes:
* Bug: IM143 Correct ifdef around setOpacity and localContrastImage.
* Bug: IM147 Imagick was Borging PHP's error handler.
3.4.1 - Fixes:
* Bug 71742 - arrays that contain data that is held by reference gives error.
- Added:
* Imagick::autoGammaImage([int channel = CHANNEL_ALL])
* Imagick::autoOrient()
* Imagick::compositeImageGravity(Imagick $image, int COMPOSITE_CONSTANT, int GRAVITY_CONSTANT)
* Imagick::localContrastImage(float radius, float strength)
* Imagick::DIRECTION_LEFT_TO_RIGHT
* Imagick::DIRECTION_RIGHT_TO_LEFT
* Imagick::SPARSECOLORMETHOD_MANHATTAN
* ImagickDraw::getOpacity() : float
* ImagickDraw::setOpacity(float opacity) :bool
* ImagickDraw::getFontResolution() : array
* ImagickDraw::setFontResolution(float x, float y) : bool
* ImagickDraw::getTextDirection() : bool
* ImagickDraw::setTextDirection(int direction) : bool
* ImagickDraw::getBorderColor() : ImagickPixel
* ImagickDraw::setBorderColor(ImagickPixel color) : bool
* ImagickDraw::getDensity() : string|null
* ImagickDraw::setDensity(string density_string) : bool
* ImagickPixel::setColorFromPixel(ImagickPixel $srcPixel) : bool
3.4.0 No changes from 3.4.0RC6.
3.4.0RC6 - Added:
* Imagick::evaluateImages(int EVALUATE_CONSTANT) : Imagick
- Fixes:
* Imagick::setImageWhitePoint, Imagick::setImageRedPrimary, Imagick::setImageGreenPrimary,
Imagick::setImageBluePrimary now take 3 params when compiled against IM7.
* Imagick::getImageWhitePoint, Imagick::getImageRedPrimary, Imagick::getImageGreenPrimary,
Imagick::getImageBluePrimary now return 3 values when compiled against IM7.
3.4.0RC5 - Added:
* Imagick::subImageMatch() added parameters. The signature is now:
Imagick::subimagematch(Imagick subimage[, array &$bestMatch[, float &similarity[,
float $similarity_threshold = 0[, int $metric = ]]]])
These parameters are only used when compiled against ImageMagick 7.
- Fixes:
* wrong type for zend_parse_parameters.
3.4.0RC4 - Fixes:
* Remove duplicated definitions of class constants.
3.4.0RC3 - Fixes:
* Imagick::adaptiveResizeImage, Imagick::cropThumbnailImage Imagick::resizeImage,
Imagick::scaleImage, and Imagick::thumbnailImage have all had a rounding bug fixed.
An additional parameter has been added to each of them, 'bool $legacy'. If legacy
is true, the calculations are done with the small rounding bug that existed in
Imagick before 3.4.0. If false, the calculations should produce the same results as
ImageMagick CLI does.
* Imagick::colorizeImage() and Imagick::tintImage were using the wrong behaviour.
It is now fixed and the legacy behaviour can still be used by passing a 3rd
parameter of `true` to the function to indicate that the legacy behaviour is
desired.
* Imagick::importImagePixels regression fixed.
* Imagick::subImageMatch use correct error metric in IM7
- Added methods:
* Imagick::similarityImage() which is an alias to Imagick::subImageMatch()
3.4.0RC2 - Added support:
* PHP 7
* ImageMagick 7. Imagick can be compiled against either ImageMagick 6 or ImageMagick 7
However it must be run with the exact same version it was compiled against. Trying
to run Imagick with a different version of ImageMagick than it was compiled against
is not supported. Please see http://nextgen.imagemagick.org/script/porting.php for
more information about ImageMagick 7.
- Minimum versions supported are now PHP >= 5.4.0 and ImageMagick >= 6.5.3-10.
Earlier versions may continue to work, but they are no longer supported.
- Added methods:
* Imagick::getConfigureOptions
* Imagick::getFeatures
* Imagick::getHDRIEnabled
* Imagick::setImageChannelMask (IM7 only)
- Added IM7 constants:
* Imagick::CHANNEL_READ_MASK
* Imagick::CHANNEL_WRITE_MASK
* Imagick::CHANNEL_META
- Fixes:
* ImagickPixel::getColorQuantum, ImagickPixel::getColorValueQuantum and
ImagickPixel::setColorValueQuantum now correctly use floats when Imagick
was compiled against a HDRI version of ImageMagick
* Imagick::exportImagePixels works for all storage types
* Version number in extension header
3.4.0RC1 - Added support:
* PHP 7
* ImageMagick 7. Imagick can be compiled against either ImageMagick 6 or ImageMagick 7
However it must be run with the exact same version it was compiled against. Trying
to run Imagick with a different version of ImageMagick than it was compiled against
is not supported. Please see http://nextgen.imagemagick.org/script/porting.php for
more information about ImageMagick 7.
- Minimum versions supported are now PHP >= 5.4.0 and ImageMagick >= 6.5.3-10.
Earlier versions may continue to work, but they are no longer supported.
- Added methods:
* Imagick::getConfigureOptions
* Imagick::getFeatures
* Imagick::getHDRIEnabled
* Imagick::setImageChannelMask (IM7 only)
- Added IM7 constants:
* Imagick::CHANNEL_READ_MASK
* Imagick::CHANNEL_WRITE_MASK
* Imagick::CHANNEL_META
- Fixes:
* ImagickPixel::getColorQuantum, ImagickPixel::getColorValueQuantum and
ImagickPixel::setColorValueQuantum now correctly use floats when Imagick
was compiled against a HDRI version of ImageMagick
* Imagick::exportImagePixels works for all storage types
3.3.0 - Added ImagickKernel class. These can be used with the Imagick::morphology or
Imagick::filter functions.
- Added methods:
* Imagick::brightnessContrastImage()
* Imagick::colorMatrixImage()
* Imagick::deleteImageProperty()
* Imagick::filter()
* Imagick::forwardFourierTransformImage()
* Imagick::getAntiAlias()
* Imagick::getImageCompression()
* Imagick::getRegistry()
* Imagick::getQuantum()
* Imagick::identifyFormat()
* Imagick::inverseFourierTransformImage()
* Imagick::isPixelSimilarQuantum()
* Imagick::listRegistry()
* Imagick::morphology()
* Imagick::rotationalBlurImage()
* Imagick::selectiveBlurImage()
* Imagick::setAntiAlias()
* Imagick::setImageBiasQuantum()
* Imagick::setProgressMonitor()
* Imagick::setRegistry() - which allows setting the "temporary-path" used by ImageMagick
* Imagick::statisticImage()
* Imagick::subImageMatch()
* ImagickPixel::getColorQuantum()
- Added constants:
* Imagick::RESOURCETYPE_TIME
* Imagick::RESOURCETYPE_THROTTLE
* Imagick::CHANNEL_RGBA
* Imagick::ALPHACHANNEL_BACKGROUND
* Imagick::FUNCTION_ARCSIN
* Imagick::FUNCTION_ARCTAN
- Fixed Imagick::clutImage() parameter parsing
- Fixed tint image bug
- Fixed ImageMagick compiled with HDRI having quantum values as floats
- Fixed memory leaks in:
* Imagick::getImageBlob()
* Imagick::getImagesBlob()
* Imagick::getImageChannelStatistics()
* Imagick::getImageFormat()
* Imagick::getImageMimetype()
* Imagick::getSamplingFactors()
* Imagick::identifyImage()
* Imagick::tintImage
- Fixed segfault when compiling statically
- ImagickDraw::setFontFamily no longer checks whether the font is available. This allows a
font family to be set where the family name is not the same as the font name. However it also
means an invalid family name can be set, leading to the default font being used, instead of an
exception being thrown. See https://github.com/mkoppanen/imagick/issues/77
- Removed Zend MM support
- Excluded deprecated methods:
* Imagick::getImageMatte()
* Imagick::colorFloodfillImage()
* Imagick::matteFloodfillImage()
* Imagick::paintFloodfillImage()
* Imagick::paintOpaqueImage()
* Imagick::paintTransparentImage()
* Imagick::mapImage()
* Imagick::recolorImage()
* Imagick::setImageIndex()
* Imagick::getImageIndex()
* Imagick::getImageSize()
* Imagick::setImageAttribute()
* Imagick::getImageAttribute()
* Imagick::mosaicImages()
* Imagick::averageImages()
* Imagick::flattenImages()
This is replaced by $im = $im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN)
* Imagick::getImageChannelExtrema()
* Imagick::getImageExtrema()
- Ini file changes
* Added imagick.skip_version_check. Imagick now checks that it was compiled against the same version of
ImageMagick that it is being run with, and will give a warning if it was compiled against a different
version of ImageMagick. The skip_version_check setting allows you to suppress this warning. However
it is strongly recommended to use the version of ImageMagick that Imagick was compiled against.
- Misc:
* CI now compiles with CFLAGS="-Wno-deprecated-declarations -Wdeclaration-after-statement -Werror"
3.3.0RC2 - Added ImagickKernel class. These can be used with the Imagick::morphology or
Imagick::filter functions.
- Added methods:
* Imagick::brightnessContrastImage()
* Imagick::colorMatrixImage()
* Imagick::deleteImageProperty()
* Imagick::filter()
* Imagick::forwardFourierTransformImage()
* Imagick::getAntiAlias()
* Imagick::getImageCompression()
* Imagick::getRegistry()
* Imagick::getQuantum()
* Imagick::identifyFormat()
* Imagick::inverseFourierTransformImage()
* Imagick::isPixelSimilarQuantum()
* Imagick::listRegistry()
* Imagick::morphology()
* Imagick::rotationalBlurImage()
* Imagick::selectiveBlurImage()
* Imagick::setAntiAlias()
* Imagick::setImageBiasQuantum()
* Imagick::setProgressMonitor()
* Imagick::setRegistry() - which allows setting the "temporary-path" used by ImageMagick
* Imagick::statisticImage()
* Imagick::subImageMatch()
* ImagickPixel::getColorQuantum()
- Added constants:
* Imagick::RESOURCETYPE_TIME
* Imagick::RESOURCETYPE_THROTTLE
* Imagick::CHANNEL_RGBA
* Imagick::ALPHACHANNEL_BACKGROUND
* Imagick::FUNCTION_ARCSIN
* Imagick::FUNCTION_ARCTAN
- Fixed Imagick::clutImage() parameter parsing
- Fixed tint image bug
- Fixed ImageMagick compiled with HDRI having quantum values as floats
- Fixed memory leaks in:
* Imagick::getImageBlob()
* Imagick::getImagesBlob()
* Imagick::getImageChannelStatistics()
* Imagick::getImageFormat()
* Imagick::getImageMimetype()
* Imagick::getSamplingFactors()
* Imagick::identifyImage()
* Imagick::tintImage
- Fixed segfault when compiling statically
- ImagickDraw::setFontFamily no longer checks whether the font is available. This allows a
font family to be set where the family name is not the same as the font name. However it also
means an invalid family name can be set, leading to the default font being used, instead of an
exception being thrown. See https://github.com/mkoppanen/imagick/issues/77
- Removed Zend MM support
- Excluded deprecated methods:
* Imagick::getImageMatte()
* Imagick::colorFloodfillImage()
* Imagick::matteFloodfillImage()
* Imagick::paintFloodfillImage()
* Imagick::paintOpaqueImage()
* Imagick::paintTransparentImage()
* Imagick::mapImage()
* Imagick::recolorImage()
* Imagick::setImageIndex()
* Imagick::getImageIndex()
* Imagick::getImageSize()
* Imagick::setImageAttribute()
* Imagick::getImageAttribute()
* Imagick::mosaicImages()
* Imagick::averageImages()
* Imagick::flattenImages()
This is replaced by $im = $im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN)
* Imagick::getImageChannelExtrema()
* Imagick::getImageExtrema()
- Ini file changes
* Added imagick.skip_version_check. Imagick now checks that it was compiled against the same version of
ImageMagick that it is being run with, and will give a warning if it was compiled against a different
version of ImageMagick. The skip_version_check setting allows you to suppress this warning. However
it is strongly recommended to use the version of ImageMagick that Imagick was compiled against.
- Misc:
* CI now compiles with CFLAGS="-Wno-deprecated-declarations -Wdeclaration-after-statement -Werror"
3.3.0RC1 - Added ImagickKernel class. These can be used with the Imagick::morphology or
Imagick::filter functions.
- Added methods:
* Imagick::brightnessContrastImage()
* Imagick::colorMatrixImage()
* Imagick::deleteImageProperty()
* Imagick::filter()
* Imagick::forwardFourierTransformImage()
* Imagick::getAntiAlias()
* Imagick::getImageCompression()
* Imagick::getRegistry()
* Imagick::getQuantum()
* Imagick::identifyFormat()
* Imagick::inverseFourierTransformImage()
* Imagick::isPixelSimilarQuantum()
* Imagick::listRegistry()
* Imagick::morphology()
* Imagick::rotationalBlurImage()
* Imagick::selectiveBlurImage()
* Imagick::setAntiAlias()
* Imagick::setImageBiasQuantum()
* Imagick::setProgressMonitor()
* Imagick::setRegistry() - which allows setting the "temporary-path" used by ImageMagick
* Imagick::statisticImage()
* Imagick::subImageMatch()
* ImagickPixel::getColorQuantum()
- Added constants:
* Imagick::RESOURCETYPE_TIME
* Imagick::RESOURCETYPE_THROTTLE
* Imagick::CHANNEL_RGBA
* Imagick::ALPHACHANNEL_BACKGROUND
* Imagick::FUNCTION_ARCSIN
* Imagick::FUNCTION_ARCTAN
- Fixed Imagick::clutImage() parameter parsing
- Fixed tint image bug
- Fixed ImageMagick compiled with HDRI having quantum values as floats
- Fixed memory leaks in:
* Imagick::getImageBlob()
* Imagick::getImagesBlob()
* Imagick::getImageChannelStatistics()
* Imagick::getImageFormat()
* Imagick::getImageMimetype()
* Imagick::getSamplingFactors()
* Imagick::identifyImage()
* Imagick::tintImage
- Fixed segfault when compiling statically
- ImagickDraw::setFontFamily no longer checks whether the font is available. This allows a
font family to be set where the family name is not the same as the font name. However it also
means an invalid family name can be set, leading to the default font being used, instead of an
exception being thrown. See https://github.com/mkoppanen/imagick/issues/77
- Removed Zend MM support
- Excluded deprecated methods:
* Imagick::getImageMatte()
* Imagick::colorFloodfillImage()
* Imagick::matteFloodfillImage()
* Imagick::paintFloodfillImage()
* Imagick::paintOpaqueImage()
* Imagick::paintTransparentImage()
* Imagick::mapImage()
* Imagick::recolorImage()
* Imagick::setImageIndex()
* Imagick::getImageIndex()
* Imagick::getImageSize()
* Imagick::setImageAttribute()
* Imagick::getImageAttribute()
* Imagick::mosaicImages()
* Imagick::averageImages()
* Imagick::flattenImages()
This is replaced by $im = $im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN)
* Imagick::getImageChannelExtrema()
* Imagick::getImageExtrema()
- Ini file changes
* Added imagick.skip_version_check. Imagick now checks that it was compiled against the same version of
ImageMagick that it is being run with, and will give a warning if it was compiled against a different
version of ImageMagick. The skip_version_check setting allows you to suppress this warning. However
it is strongly recommended to use the version of ImageMagick that Imagick was compiled against.
- Misc:
* CI now compiles with CFLAGS="-Wno-deprecated-declarations -Wdeclaration-after-statement -Werror"
3.2.0RC1 - Fix bug #66098: Segfault in zval_addref_p
3.2.0b2 - A lot of internal improvements on the code
- Added ImagickPixel::isPixelSimilar and deprecate ImagickPixel::isSimilar #10
- Added imagick::smushimages
- Added imagick::blueshiftimage and imagick::clampimage
- Added Imagick::autolevelimage
- Added constants:
Imagick::ALPHACHANNEL_REMOVE
Imagick::ALPHACHANNEL_FLATTEN
Imagick::RESOURCETYPE_THREAD
Imagick::COMPOSITE_CHANGEMASK
Imagick::COMPOSITE_LINEARLIGHT
Imagick::COMPOSITE_DIVIDE
Imagick::COMPOSITE_DISTORT
Imagick::COMPOSITE_BLUR
Imagick::COMPOSITE_PEGTOPLIGHT
Imagick::COMPOSITE_VIVIDLIGHT
Imagick::COMPOSITE_PINLIGHT
Imagick::COMPOSITE_LINEARDODGE
Imagick::COMPOSITE_LINEARBURN
Imagick::COMPOSITE_MATHEMATICS
Imagick::COMPOSITE_MODULUSADD
Imagick::COMPOSITE_MODULUSSUBTRACT
Imagick::COMPOSITE_MINUSDST
Imagick::COMPOSITE_DIVIDEDST
Imagick::COMPOSITE_DIVIDESRC
Imagick::COMPOSITE_MINUSSRC
Imagick::COMPOSITE_DARKENINTENSITY
Imagick::COMPOSITE_LIGHTENINTENSITY
Imagick::FILTER_KAISER
Imagick::FILTER_WELSH
Imagick::FILTER_PARZEN
Imagick::FILTER_LAGRANGE
Imagick::FILTER_SENTINEL
Imagick::FILTER_BOHMAN
Imagick::FILTER_BARTLETT
Imagick::FILTER_JINC
Imagick::FILTER_SINCFAST
Imagick::FILTER_ROBIDOUX
Imagick::FILTER_LANCZOSSHARP
Imagick::FILTER_LANCZOS2
Imagick::FILTER_LANCZOS2SHARP
Imagick::FILTER_ROBIDOUXSHARP
Imagick::FILTER_COSINE
Imagick::FILTER_SPLINE
Imagick::FILTER_LANCZOSRADIUS
Imagick::COMPRESSION_ZIPS
Imagick::COMPRESSION_PIZ
Imagick::COMPRESSION_PXR24
Imagick::COMPRESSION_B44
Imagick::COMPRESSION_B44A
Imagick::COMPRESSION_LZMA
Imagick::COMPRESSION_JBIG1
Imagick::COMPRESSION_JBIG2
3.2.0b1 - Added Countable interface to Imagick class
- Added experimental support for Zend MM. If compiled with --enable-imagick-zend-mm
Imagick will respect PHP memory limits
- Added additional parameter to writeImageFile to allow setting format
- Distribute tests as part of the release
- Fixed Bug #65043: Destroy and clear method do the same things
- Fixed Bug #64945: ZEND_ACC_ALLOW_STATIC vs ZEND_ACC_STATIC
- A lot of internal refactoring: rewrite macros as functions, clean up naming etc
3.1.2 - Fix ZTS build
- Fix small memory leak in identifyImage
- Added LICENSE
- Added mimetype to identify image as per PECL bug 65037
- Fixed type conversion error in newpseudoimage
3.1.1 - Reworked identifyImage method
3.1.0 - Releasing RC3 as is
3.1.0RC3 - Fixed building against latest ImageMagick versions (#GH-2)
- Fixed thumbnail resize bug (#GH-1)
- Fixed building against latest PHP versions
3.1.0RC2 - Fixed PHP bug #61879 (Imagick writeImages no longer works with PHP5.4)
3.1.0RC1 - Fixed PECL Bug #22722
- Fixed possible memory leaks in error scenarios
- Added PHP 5.4 support
3.1.0b1 - Fixed PECL Bug #21229
- Fixed PECL Bug #20636
- Deprecated clone() method in favour of clone keyword
- Added ImagickDraw::setResolution
- Internal refactoring on read/write code
3.0.1 - Fixed PECL bug #17244
3.0.1RC2 - Fixed a bug which caused failure in writing files with format prefix (such as png:test.jpg)
3.0.1RC1 - Fixed building against PHP 5.1.x
- Fixed PECL bug #17892
3.0.0 - No bugs reported against RC2 so releasing as stable
3.0.0RC2 - Added set/getColorspace
- Added transformImageColorspace (Patrick Durold)
- Fix writeImage logic error in filename_len checking.
- Fix conversion to double in affine matrices
- s,function_entry,zend_function_entry, (Johannes)
3.0.0RC1 - Fixes a crash when setResourceLimit is called statically
- Fixes PECL bug #16932 Unable to read image from the filehandle
- Return empty string if original value is empty in:
* ImagickDraw::getClipPath
* ImagickDraw::getEncoding
* ImagickDraw::getFont
* ImagickDraw::getFontFamily
- More relaxed validation on affinematrices
- Initialize the counter properly in polygons. Thanks to Etienne Kneus
3.0.0b2 - Fixes building against PHP 5.2.x
3.0.0b1 - Fixes incorrect error message "wand contains no images"
- Change cropthumbnailimage behavior to actually do what it is supposed to do
- setimageartifact, getimageartifact, deleteimageartifact
- added fill param to thumbnailImage
- Added support for using imagick objects in other extensions
2.3.0 - imagick::setImageVirtualPixelMethod not deprecated anymore
- fixed windows build
2.3.0RC3 - Closed bug reports and pushing out RC just in case before stable.
2.3.0RC2 - Fixed image reading routines. Page defitions (test.pdf[0]) were broken on RC1
- Fixed imagick::colorizeImage, it had no effect on images
2.3.0RC1 - Fixes PECL bug #16085 (Twice crop returns invalid result)
- Removed unnecessary checks
2.3.0b1 - Fixed compilation against older ImageMagick versions (Patch by Tim Herzog)
- Fixed getImageMatte to actually return boolean instead of int

- Added methods:
* Imagick::getImageMimeType
* Imagick::writeimagefile
* Imagick::writeimagesfile
* Imagick::resetimagepage
* Imagick::setimageclipmask
* Imagick::getimageclipmask
* Imagick::animateimages
* Imagick::recolorimage
* Imagick::floodfillpaintimage
* Imagick::opaquepaintimage
* Imagick::transparentpaintimage
* Imagick::decipherimage
* Imagick::encipherimage
* Imagick::getimagealphachannel
* Imagick::getimagechanneldistortions
* Imagick::getimagegravity
* Imagick::setimagegravity
* Imagick::remapimage
* Imagick::exportimagepixels
* Imagick::getimagechannelkurtosis
* Imagick::functionimage
* Imagick::importImagePixels
* Imagick::sparseColorImage
* Imagick::deskewImage
* Imagick::segmentImage

* Imagickdraw::gettextkerning
* Imagickdraw::settextkerning
* Imagickdraw::gettextinterwordspacing
* Imagickdraw::gettextinterwordspacing

* ImagickPixel::getColorValueQuantum
* ImagickPixel::setColorValueQuamtum
* ImagickPixel::getIndex
* ImagickPixel::setIndex
2.2.2 - No bugs reported against RC4 so releasing it as is
2.2.2RC4 - Check for ImageMagick version in config.m4 before trying to search for headers
- Fixed memory leak where pointinfo is used
- Fixed incorrect memory handling of array where php array is converted to array of doubles
- Cleaned up image writing routines
- Added missing semicolon on constant registration
- Added distortion and alphachannel constants
2.2.2RC3 - Fixed clone keyword to actually clone the wand ptr
- Imagick progress monitor name is now correctly cloned
- Fixes PECL Bug #15614
2.2.2RC2 + Added Imagick::setImageProgressmonitor and Imagick::orderedPosterizeImage
- Fixes http://imagemagick.org/discourse-server/viewtopic.php?f=18&t=12828
- Fixes error with empty exception messages
- Fixes PECL Bug #15332
- Fixed a possible memory leak in Imagick::convolveImage
2.2.2RC1 - Fixes Pecl bug #15321
- Added getImageCompressionQuality
- Fixes building against PHP 5.3
2.2.1 - No bugs reported against RC2 so releasing it as is
2.2.1RC2 - Fixed ZTS build
2.2.1RC1 - Fixes a small memory leak when casting a string to ImagickPixel object
- Added new constants
- Added getImageChannelRange method
- Some cleaning up on the syntax
2.2.0 - Changes since 2.1.1:
* Major refactoring of the file structure
* Fixes bugs related to the refactoring
2.2.0RC1 Fix build on Mac related to duplicate symbols
2.2.0b2 Closes PECL Bugs #13841 and #13787
2.2.0b1 - Major refactoring of the internal file structure
2.1.1 - Fixed a bug with fit parameter when scaling images with scaling ratio 1:1
* This is a minor BWC break. Scripts relying on incorrect behavior might need revisiting.
2.1.1RC1 Fixed building against ImageMagick 6.3.8-x
2.1.0 - Addded setImageAlphaChannel method
- Fixed sharpenImage parameters being reversed
- Fixed building with pre 5.2 versions
2.1.0RC3 - Fixes PECL Bug #12851
- Some major housekeeping changing numeral values to constants
2.1.0RC2 - Closes PECL Bugs #12463 and #12479
- Fixes the behavior of flattenImages and fximage
- Fixes incorrect thumbnail behavior
- Fixes a bug in Imagick::cropThumbnailImage
- Added new constant Imagick::NOISE_RANDOM
2.1.0RC1 + All methods that expect ImagickPixel now allow a string representing the color
+ Added support for pixeliterator in all supported ImageMagick versions.
+ ImagickPixelIterator now implements the iterator interface
+ It is now possible to set the row with region iterator
+ Added MAXPATHLEN checks for image reads/writes
+ Added a fix to Imagick::cropThumbnailImage() to check if images are already at the desired size
+ Fixed a memory leak in Imagick::getImageHistogram()
+ Speed improvements to Imagick::cropThumbnailImage()
+ Added interpolate constants
+ Fixed ImagickPixel::getColor()
+ Marked ImagickDraw::__construct() with ZEND_ACC_CTOR
+ Added fit parameter and proportional scaling to:
- Imagick::adaptiveResizeImage()
- Imagick::scaleImage()
- Imagick::resizeImage()
+ Added imagick.locale_fix ini setting to fix drawing bug on some locale
+ Suppressed warnings in readImageFile and pingImageFile (PECL Bug #12367)
+ Added methods:
- ImagickPixel::clone()
- ImagickPixel::getColorAsString()
- Imagick::mergeImageLayers()
- Imagick::paintFloodfillImage()
- Imagick::setFont()
- Imagick::getFont()
- Imagick::setPointsize()
- Imagick::getPointsize()
2.0.1 + ImagickDraw::setFont and ImagickDraw::setFontFamily now allow only valid fonts
+ Added IMAGICK_EXTVER and IMAGICK_EXTNUM constants
+ Added check for empty or invalid pseudo format string in Imagick::newPseudoImage
+ Fixed incorrect arg hinting for Imagick::compareImageChannels
2.0.1RC1 + Added Imagick::distortImage and Imagick::setlastiterator
+ Added optional fourth parameter to newImage to set the format when creating a new canvas
+ Fixed fitting to zero size image in Imagick::thumbnailImage
+ Fixed the destroy methods.
+ Most of the operations that read / add images to the stack move the iterator position to the last element
+ Fixed memleaks in methods that replace the internal MagickWand* pointer
2.0.0 + Added Imagick::extentImage
+ Added Imagick::IMAGICK_VERSION_NUMBER and Imagick::IMAGICK_VERSION_STRING constants
+ Fixed a possible crash in Imagick::newPseudoImage
2.0.0RC4 + Moved getimagelength into #if block
+ Added optional third parameter to thumbnailImage
+ Added second optional parameter to getImageProperties and getImageProfiles to return just the available properties.
+ Closes PECL Bug #12006
2.0.0RC3 + Closes PECL Bug #12006
+ Fixes a possible crash in queryFontMetrics
+ New methods:
+ Imagick::clutImage
+ Imagick::setImage
+ Imagick::getImageLength
+ Imagick::getImageOrientation
+ Imagick::setImageOrientation
+ Imagick::getImageProperties
+ Imagick::getImageProfiles
2.0.0RC2 + Added support for forcing image format during write operations.
+ Added more interlace constants. They are present if imagick is compiled against ImagickMagick 6.3.4 or newer.
+ Added Imagick::getImageAttribute.
+ Added LAYERMETHOD constants. Available if compiled against ImageMagick 6.2.8 or later.
+ Closes PECL Bug #11934 - setImageVirtualPixelMethod triggers exception
+ Fixed safe_mode and open_basedir bypass for __construct, readImage, readImages and pingImage
2.0.0RC1 + Suppress error when reading image from a stream.
+ Fixed allow_url_fopen bypass in Imagick::newPseudoImage().
+ Fixed imagick::__tostring to return empty string if the object doesnt contain images.
+ Fixed a problem with Imagick::getImagesBlob() when an older version of ImageMagick is used.
+ Fixed a crash on Windows when no arguments are passed to the Imagick constructor.
+ Fixed a crash when using a threaded SAPI under Windows.
+ Fixed a bug in ImagickDraw::affine().
+ Added Imagick::getIteratorIndex() and Imagick::setIteratorIndex().
+ Added Imagick::readImages()
2.0.0b3 + Closes PECL Request #11513
+ Fixes ImagickPixel bug reported by Imran Nazar.
+ Fixed Imagick::setImageDispose and Imagick::setImageUnits.
+ Fixed Imagick::queryFontMetrics to autodetect multiline text if multiline argument is not passed or is null.
+ Fixed open_basedir bypasses in Imagick::newPseudoImage
+ Fixed "Undefined Exception" error messages

NOTE: Using threaded SAPI in Windows is not currently recommended.
2.0.0b2 + Fixed open_basedir bypasses.
+ Fixed PECL Bug #11328
+ Added methods:
- Imagick::queryFonts()
- Imagick::queryFontMetrics()

NOTE: Using threaded SAPI in Windows is not currently recommended.
2.0.0b1 - fix PECL bug #10967 - supplied path fails to compile
- Added new methods
+ Imagick::displayImage()
+ Imagick::displayImages()
+ Imagick::cropThumbnailImage()
+ Imagick::roundCorners()
+ Imagick::polaroidImage()
+ Imagick::getImageProperty()
+ Imagick::setImageProperty()
+ Imagick::newPseudoImage()
+ Imagick::__toString()
+ ImagickPixel::setColorCount()
- Added missing DisposeType constants.
- Merged ImagickPixel::getColorAsString and ImagickPixel::getColorAsNormalizedString into ImagickPixel::getColor( [bool normalized] )
- Fixed wrong exception type in Imagick::setSamplingFactors
- Removed useless check from ImagickPixelIterator::syncIterator
- Renamed ImagickDraw::pushDrawingWand to ImagickDraw::push
- Renamed ImagickDraw::popDrawingWand to ImagickDraw::pop
2.0.0a3 - Removed support for ImagickPixelIterator if compiled against older version of ImageMagick (below 6.2.8)
- Fixed a lot of functions which were not present in older ImageMagick versions. (below 6.2.8)
- Added support for passing color name as parameter for ImagickPixel constructor
- Added support for passing a filename or an array of filenames to Imagick constructor
- Fixed anomalies with ImagickPixelIterator exceptions
- Fixed a possible segfault in Imagick::appendImages
- Fixed double-free errors in some Imagick methods
- Added composite operator constants.
- Fixed ImagickPixelIterator::__construct to accept Imagick object as parameter.

+ Some of the changes are a bit experimental so please report bugs.
2.0.0a2 - Fixed segfaults in ImagickDraw::getFont(), ImagickDraw::getFontFamily(), ImagickDraw::getTextEncoding() and ImagickDraw::getClipPath()
- Added a PHP version check to config.m4
2.0.0a1 - Initial Release