PackageTrack
Sign in Get early access

pixelandtonic/imagine

Image processing for PHP

1.5.2 3.7M downloads/mo #2612 most downloaded on Packagist pixelandtonic/Imagine

What this package is like to depend on

Last release 5 months ago

25 Feb 2026

Release timing varies

gaps range from 2 weeks to 1.4 years

Most releases are documented

notes for 38 of 48 stable releases

Nothing withdrawn

no release was ever pulled

15 years old

50 releases · first in 2011

3 releases in the last 12 months

see the full history below

Release timeline

50 releases · Oct 2011 to Feb 2026
2012 2014 2016 2018 2020 2022 2024 2026
Release Pre-release

Releases

latest 50
  1. 1.5.2 09 Jan 2026
    Release notes
    • Do not call curl_close on PHP 8.0+ (#875, @dmaicher)
    Open source →
  2. 1.5.1 09 Dec 2025
    Release notes
    • Don't call imagedestroy on PHP 8.5+ (#873, @mlocati)
    Open source →
  3. 1.5.0 03 Dec 2024
    Release notes
    • Minimum supported PHP version raised from 5.5 to 7.1 (#865, @alexander-schranz)
    • Fix PHP 8.4 deprecation warnings (#865, @alexander-schranz)
    • The GD driver now supports resolution for PHP >= 7.2 (#813, #866, @gutocf, @mlocati)
    Open source →
  4. 1.4.0 18 Nov 2024
    Release notes
    • If a file couldn't be found, we now throw a NotFoundException exception (#853, @playmono)
    • Add support for webp_lossless to GD and GMagick (#858, @ausi)
    • Use streams in ExifMetadataReader (#861, @ausi)
    • WebP format now supports animation (#812, @Yoann-TYT)
    Open source →
  5. 1.3.5 07 Jun 2023
    Release notes
    • Fix PHP 8.2 warnings with Point class (#847, @anovsiradj)
    Open source →
  6. 1.3.4 17 Apr 2023
    Release notes
    • Let PHP automatically detect the preferred TLS version (#841, @radli)
    • Add @return phpdoc to ReturnTypeWillChange methods (#846, @mlocati)
    Open source →
  7. 1.3.3 16 Nov 2022
    Release notes
    • Fix invalid format MIME type definition (#835, @xdanik)
    Open source →
  8. 1.3.2 01 Apr 2022
    Release notes
    • Workaround for a bug in PHP 7.3+opcache that causes segmentation faults (#826, #829, #828, @ausi, @mnocon, @mlocati)
    Open source →
  9. 1.3.1 15 Mar 2022
    Release notes
    • Fix undefined variable $engineRawVersion in Imagick/Gmagick DriverInfo (#825, @fxbt)
    Open source →
  10. 1.3.0 15 Mar 2022
    Release notes
    • Minimum PHP supported version is now 5.5 (#820, @PowerKiKi)
    • Support AVIF, HEIC, and JXL in Imagick driver (#759, #765, @ausi)
    • Support AVIF in GD driver (#791, @mlocati)
    • Make the $filter parameter of the resize method invariant (#776, @mlocati)
    • Ability to specify the alpha-blending of the GD drawer (#790, @mlocati)
    • Add support for SINCFAST filter in Imagick driver (#823, @mlocati)
    • Fix applyMask() for GD driver (#708, @ninze)
    • Fix PHP 8.1 compatibility (#768, #791, @ausi, @mlocati)
    • Fix error handling in grayscale() for Gmagick driver (#757, @dmitry-kulikov)
    • Fix convolve() for Imagick driver (#775, @mlocati)
    • Fix array retuned by histogram() method of GD and Imagick drivers (#797, @mlocati)
    • Fix handling alpha channel in Imagick (#775, #798, @mlocati)
    • New Driver\Info classes to inspect installed drivers (#802, #805, #806, @mlocati)
    • Fix wrong load logic in Imagick (#807, @mlocati)
    Open source →
  11. 1.2.4 03 Nov 2020
    Release notes
    • Fix PHP 8.0 compatibility, except gmagick - see https://bugs.php.net/bug.php?id=80106 (#740, @ausi)
    • Optimize reading EXIF metadata from local files (#741, @jorrit)
    • Fix rotation with imagick (#734, @lashus @ausi)
    • Fix saving multi-layer images (eg animated GIFs) as plain images with gmagick and imagick (#746, @alexander-schranz @mlocati)
    • Fix gmagick not resolving the correct export format in some edge cases (#750, @ausi)
    Open source →
  12. 1.2.3 04 Dec 2019
    Release notes
    • Handle jfif extension in GD driver (#727, @sylvain-msl-talkspirit)
    • Improve detection of unsupported Exit Metadata Reader (#729, @mlocati, @ausi)
    Open source →
  13. 1.2.2 09 Jul 2019
    Release notes
    • The GD driver can now load WebP files (#711, #718, @lashus, @ausi)
    • Avoid calling imageantialias if it's not available (#713, @ahukkanen)
    Open source →
  14. 1.2.1 03 Jun 2019
    Release notes
    • Silence call to \Imagick::setImageOpacity() in order to prevent deprecation error with Imagick 3.4.4 and ImageMagick 6 (#715, @samdark, @mlocati)
    Open source →
  15. 1.2.0 07 Dec 2018
    Release notes
    • ExifMetadataReader now returns all the available metadata, not only EXIF and IFD0 (#701, @mlocati)
    Open source →
  16. 1.1.0 25 Oct 2018
    Release notes
    • New ImageInterface::THUMBNAIL_FLAG_NOCLONE flag for thumbnail() to let it modify the original image instance in order to save memory (@mlocati)
    Open source →
  17. 1.0.2 24 Oct 2018
    Release notes
    • Check that the Imagick PHP extension is not compiled using ImageMagick version 7.0.7-32 because it does not work correctly (@mlocati)
    Open source →
  18. 1.0.1 27 Sep 2018
    Release notes
    • Box now rounds the width/height it receives (previously it discarded the decimal points) (@mlocati)
    Open source →
  19. 1.0.0 25 Sep 2018
    Release notes
    • New FontInterface method: wrapText - split a text into multiple lines, so that it fits a specific width (@mlocati)
      BREAKING CHANGE if you have your own FontInterface implementation, it now must implement wrapText
    • Drawer methods can now accept a thickness of zero (@mlocati)
    • Fix drawing unfilled chords with GD driver (@mlocati)
    • Fix thickness drawing of unfilled chords with Imagick and Gmagick drivers (@mlocati)
    • Fix handling of radius in circle method implementations (@mlocati)
    • The dissolve method of ColorInterface normalizes the final value of alpha (@mlocati)
      BREAKING CHANGE dissolve doesn't throw a Imagine\Exception\InvalidArgumentException anymore
    Open source →
  20. 1.0.0-alpha2 08 Sep 2018 pre-release
    Release notes
    • The coalesce method of LayerInterface instances now returns the LayerInterface itself (@mlocati)
      BREAKING CHANGE if you have your own LayerInterface implementation, it now must return $this
    • The __toString method has been added to ColorInterface since all its implementations have it (@mlocati)
      BREAKING CHANGE if you have your own ColorInterface implementation, it now must implement __toString
    • New Imagick save option: optimize if set, the size of animated GIF files is optimized (@mlocati)
      NOTE Imagick requires that the image frames have the same size
    • The paste method now accepts images not fully included in the destination image (@mlocati)
      BREAKING CHANGE the paste method doesn't throw an OutOfBoundsException anymore
    • Fix handling of PNG compression in Imagick save method (@mlocati)
    • New drawer methods: rectangle and circle (@mlocati)
      BREAKING CHANGE if you have your own implementation of DrawerInterface you should add these two new methods
    • The getChannelsMaxValue method has been added to PaletteInterface (@mlocati)
      BREAKING CHANGE if you have your own PaletteInterface implementation, it now must implement this new method
    Open source →
  21. 1.0.0-alpha1 28 Aug 2018 pre-release
    Release notes
    • Imagine is now tested under Windows too (@mlocati)
    • Add support to webp image format (@chregu, @antoligy, @alexander-schranz)
    • Add Imagine\File\LoaderInterface that allows loading remote images with any imaging driver (@mlocati). You can use your own LoaderInterface implementation so that you can for instance use curl or any other library.
    • Fix some phpdoc issues (@mlocati)
    • flipHorizontally and flipVertically methods of GD images is now much faster on PHP 5.5+ (@mlocati)
    • Fix loading of PNG indexed images with GD (@mlocati)
    • Loading indexed images with GD is now much faster on PHP 5.5+ (@mlocati)
    • Add support to grayscale images with Gmagick (@mlocati)
    • Add support to alpha channels of Gmagick images (@mlocati)
    • Fix getColorAt method of Gmagick images (@mlocati)
    • Add getTransformations to the Autorotate filter, so that you can get the list of transformations that should be applied to an image accordingly to the EXIF metadata (@mlocati)
    • The metadata reader now doesn't throw exceptions or warnings (@lentex, @mlocati)
    • Fix documentation (@ZhangChaoWN, @Mark-H, @mlocati)
    • Fix pixel range issue with Gmagick image (@b-viguier)
    • Fix text drawer method on Windows when using relative font file paths (@mlocati)
    • Fix box font method on Windows when using relative font file paths (@mlocati)
    • Fix crash on Windows when loading an image with Imagick (@mlocati)
    • Fix generation of API documentation (@mlocati)
    • Add jpeg_sampling_factors option when saving JPEG images (Gmagick/Imagick only) (@ausi)
    • Add BMP as supported image format (@mlocati)
    • Add support to new image type constants of Imagick (@ausi)
    • Check that Imagick correctly supports profiles (@ausi)
    • Add setMetadataReader/getMetadataReader to ImagineInterface (@mlocati)
      BREAKING CHANGE if you have your own ImagineInterface implementation, it now must implement those two methods
    • Fix creating Gmagick images with alpha colors when palette doesn't support alpha (@FractalizeR)
    • Fix warning about deprecated clone method in copy method of Imagick images (@mlocati)
    • Fix copy methods of Images (the original image and its new copy are now fully detached) (@mlocati)
    • It's now possible to use clone $image as an alternative to $image->copy() (@mlocati)
    • Add support to custom classes for BoxInterface, MetadataReaderInterface, FontInterface, LoaderInterface, LayersInterface, ImageInterface (@mlocati)
      BREAKING CHANGE if you have your own ImagineInterface implementation, it now must implement the methods of ClassFactoryAwareInterface
    • Add support for pasting with alpha for GD and Imagick (@AlloVince, @mlocati)
    • Downscaling a Box until it reaches a dimension less than 1 returns a box with dimension of 1 instead of throwing an exception (@mlocati)
      BREAKING CHANGE if you relied on Box::scale throwing an exception in this case
    • New filters: BlackWhite, BorderDetection, Negation, Neighborhood (@rejinka)
    • Minor optimization of filters based on OnPixelBased (@rejinka, @mlocati)
    • Add flag to thumbnail to allow upscaling images (@vlakoff)
      BREAKING CHANGE the $mode argument has been renamed to $settings, and it's now an integer (but old string values are accepted for backward compatibility). In this case the ManipulatorInterface constants THUMBNAIL_INSET, THUMBNAIL_OUTBOUND were changed from string values to integers.
    • New filter: brightness (@lenybernard, @mlocati)
    • New filter: colvolve available for all graphics libraries except gmagick with version prior to 2.0.1RC2 (@armatronic, @mlocati)
    • Fix bug in Imagine\Image\Palette\RGB::blend() (@dmolineus, @mlocati)
    • Autoload was moved from PSR-0 to PSR-4, and code files moved from /lib/Imagine to /src (@mlocati)
    Open source →
  22. v0.7.1 16 May 2017
    Release notes
    • Remove Symfony PHPUnit bridge as dependency (@craue)
    Open source →
  23. v0.7.0 02 May 2017
    Release notes
    • Fix memory usage on metadata reading (@Seldaek)
    • PHP 7.1 support
    • Latest Imagemagick compatibility (@jdewit)
    Open source →
  24. v0.6.3 19 Sep 2015
    Release notes
    • Fix wrong array_merge when calling Transformation::getFilters without filters
    • Add export-ignore git attribute (@Benoth)
    • Fix docblocks (@Sm0ke0ut and @norkunas)
    • Fix animated gif loop length options (@jygaulier)
    • Multiple tweaks for the repository and travis builds (@localheinz, @vrkansagara and @dunzun)
    • Fix metadata extraction from streams (@armatronic)
    • Fix autorotation (@tarleb)
    • Load exifmetadata reader whenever possible
    • Add metadata getter
    Open source →
  25. 0.6.2 11 Nov 2014
    Release notes
    • Stripping image containing an invalid ICC profile fails
    • MetadataBag now implements \Countable
    • Fix wrong array_merge in MetadataBag giving invalid results with HTTP resources (@javaguirre)
    • Fix Imagick merge strategy (@GrahamCampbell)
    • Fixed various alpha issues (@RadekDvorak)
    • Fix Image cloning on HHVM (@RdeWilde)
    • Fix exception on invalid file using GD driver (@vlakoff).
    • Fix ImageInterface::getSize on animated GIFs (@sokac)
    Open source →
  26. v0.6.1 16 Jun 2014
    Release notes
    • Fix invalid namespace usage (#336 @csanquer).
    Open source →
  27. v0.6.0 13 Jun 2014
    Release notes
    • BC break: Colors are now provided through the PaletteInterface. Any call to previous Imagine\Image\Color constructor must be removed and use the palette provided by Imagine\Image\ImageInterface::getPalette to create colors.
    • BC break : Animated GIF default delay is no longer 800ms but null. This avoids resettings a delay on animated image.
    • Add support for ICC profiles
    • Add support for CMYK and grayscale colorspace images.
    • Add filter argument to ImageInterface::thumbnail method.
    • Add priority to filters (@Richtermeister).
    • Add blur effect (@Nokrosis).
    • Rename "quality" option to "jpeg_quality" and apply it only to JPEG files (@vlakoff).
    • Add "png_compression_level" option (@vlakoff).
    • Rename "filters" option to "png_compression_filter" (@vlakoff).
    • Deprecate quality and filters ManipulatorInterface::save options, use jpeg_quality, png_compression_level and png_compression_filter instead.
    • Add support for alpha blending in GD drawer (@salem).
    • Add width parameter to Drawer::text (@salemgolemugoo).
    • Add NotSupportedException when a driver does not support an operation (@rouffj).
    • Add support for metadata.
    • Fix #158: GD alpha detection + Color::isOpaque are broken.
    • Fix color extraction for non-RGB palettes.
    Open source →
  28. v0.5.0 10 Jul 2013
    Release notes
    • Add Layers::coalesce.
    • Add filter option to ImageInterface::resize.
    • Add sharpen effect.
    • Add interlace support.
    • LayersInterface now extends ArrayAccess, gives support for animated gifs.
    • Remove Imagick and Gmagick flatten after composite.
    • Fix pixel opacity reading in Gmagick::histogram.
    • Deprecate pear channel installation.
    • Deprecate phar installation.
    Open source →
  29. v0.4.1 13 Dec 2012
    Release notes
    • Lazy-load GD layers.
    Open source →
  30. v0.4.0 07 Dec 2012
    Release notes
    • Add support for image Layers.
    • Add Colorize effect.
    • Add documentation for the Grayscale effect.
    • Port RelativeResize filter from JmikolaImagineBundle.
    Open source →
  31. v0.3.1 12 Nov 2012
    Release notes
    • Add Grayscale effect.
    • Drawer::text position fix.
    Open source →
  32. v0.3.0 29 Jul 2012
    Release notes
    • Add configurable border thickness to drawer interface and implementations.
    • Add ImageInterface::strip.
    • Add Canvas filter.
    • Add resolution option on image saving.
    • Add Grayscale filter.
    • Add sami API documentation.
    • Add compression quality to Gmagick.
    • Add effects API.
    • Add method to get pixel at point in Gmagick.
    • Ensure valid background color in rotations.
    • Fill lines with color to prevent semi-transparency issues.
    • Use Imagick::resizeImage instead of Imagick::thumbnailImage for resizing.
    • Fix PNG transparency on save ; do not flatten if not necessary.
    Open source →
  33. v0.2.8 30 Nov 2011
    Release notes
    • Add support for Travis CI.
    Open source →
  34. v0.2.7 18 Nov 2011
    Release notes
    • Use composer for autoloading.
    Open source →
  35. v0.2.6 09 Nov 2011
    Release notes
    • Documentation enhancements.
    Open source →
  36. 0.2.5 29 Oct 2011
    Release notes
    • Add PEAR support.
    • Documentation enhancements.
    Open source →
  37. 0.2.4 28 Oct 2011
    Release notes
    • Add imagine.phar, phar and rake tasks.
    • Add ImagineInterface::read to read from a stream resource.
    • Documentation enhancements.
    • Fix gifs transparency issues.
    Open source →
  38. 0.2.3 17 Oct 2011
    Release notes
    • Documentation enhancements.
    Open source →
  39. 0.2.1 16 Oct 2011
    Release notes
    • Add PointInterface::move.
    • BoxInterface::scale can accept floats.
    • Set antialias mode for GD images.
    • Fix png compression.
    Open source →
  40. 0.2.0 06 Oct 2011
    Release notes
    • Add Imagine\Fill\Gradient\Linear::getStart/getEnd.
    • Add Imagine\Image\Color::isOpaque.
    • Add Gmagick transparency exceptions.
    • Add support for transparency for gif export.
    • Add widen/heighten methods for easy scaling to target width/height.
    • Add functionals tests to unit test thumbnails creation.
    • Add the ability to use hexadecimal notation for Imagine\Image\Color construction.
    • Implement fast linear gradient for Imagick.
    • Remove lengthy image histogram comparisons.
    • Extract ManipulatorInterface from ImageInterface.
    • Switch methods to final.
    • New method ImageInterface::getColorAt.
    • Introduce ImagineAware abstract filter class.
    Open source →
  41. v0.7.1.3 26 Oct 2017

    Nothing published for this version

  42. v0.7.1.2 17 Oct 2017

    Nothing published for this version

  43. v0.7.1.1 02 Jun 2017

    Nothing published for this version

  44. v0.6.3.2 07 Dec 2016

    Nothing published for this version

  45. v0.6.3.1 28 Nov 2016

    Nothing published for this version

  46. 1.5.2.1 25 Feb 2026

    Nothing published for this version

  47. 1.3.3.1 03 Jan 2023

    Nothing published for this version

  48. 1.2.4.2 22 Jun 2021

    Nothing published for this version

  49. 1.2.4.1 05 Nov 2020

    Nothing published for this version

  50. 1.2.2.1 19 Jul 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive