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