Skip to content

Latest commit

 

History

History
301 lines (255 loc) · 14.5 KB

CHANGELOG.md

File metadata and controls

301 lines (255 loc) · 14.5 KB

CHANGELOG

NEXT (YYYY-MM-DD)

1.4.0 (2024-11-10)

  • 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)

1.3.5 (2023-06-07)

  • Fix PHP 8.2 warnings with Point class (#847, @anovsiradj)

1.3.4 (2023-04-17)

  • Let PHP automatically detect the preferred TLS version (#841, @radli)
  • Add @return phpdoc to ReturnTypeWillChange methods (#846, @mlocati)

1.3.3 (2022-11-16)

  • Fix invalid format MIME type definition (#835, @xdanik)

1.3.2 (2022-04-01)

  • Workaround for a bug in PHP 7.3+opcache that causes segmentation faults (#826, #829, #828, @ausi, @mnocon, @mlocati)

1.3.1 (2022-03-15)

  • Fix undefined variable $engineRawVersion in Imagick/Gmagick DriverInfo (#825, @fxbt)

1.3.0 (2022-03-15)

  • 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)

1.2.4 (2020-11-03)

  • 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)

1.2.3 (2019-12-04)

  • Handle jfif extension in GD driver (#727, @sylvain-msl-talkspirit)
  • Improve detection of unsupported Exit Metadata Reader (#729, @mlocati, @ausi)

1.2.2 (2019-07-09)

  • The GD driver can now load WebP files (#711, #718, @lashus, @ausi)
  • Avoid calling imageantialias if it's not available (#713, @ahukkanen)

1.2.1 (2019-06-03)

  • Silence call to \Imagick::setImageOpacity() in order to prevent deprecation error with Imagick 3.4.4 and ImageMagick 6 (#715, @samdark, @mlocati)

1.2.0 (2018-12-07)

  • ExifMetadataReader now returns all the available metadata, not only EXIF and IFD0 (#701, @mlocati)

1.1.0 (2018-10-25)

  • New ImageInterface::THUMBNAIL_FLAG_NOCLONE flag for thumbnail() to let it modify the original image instance in order to save memory (@mlocati)

1.0.2 (2018-10-24)

  • Check that the Imagick PHP extension is not compiled using ImageMagick version 7.0.7-32 because it does not work correctly (@mlocati)

1.0.1 (2018-09-27)

  • Box now rounds the width/height it receives (previously it discarded the decimal points) (@mlocati)

1.0.0 (2018-09-25)

  • 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

1.0.0-alpha2 (2018-09-08)

  • 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

1.0.0-alpha1 (2018-08-28)

  • 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)

0.7.1 (2017-05-16)

  • Remove Symfony PHPUnit bridge as dependency (@craue)

0.7.0 (2017-05-02)

  • Fix memory usage on metadata reading (@Seldaek)
  • PHP 7.1 support
  • Latest Imagemagick compatibility (@jdewit)

0.6.3 (2015-09-19)

  • 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

0.6.2 (2014-11-11)

  • 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)

0.6.1 (2014-06-16)

  • Fix invalid namespace usage (#336 @csanquer).

0.6.0 (2014-06-13)

  • 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.

0.5.0 (2013-07-10)

  • 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.

0.4.1 (2012-12-13)

  • Lazy-load GD layers.

0.4.0 (2012-12-10)

  • Add support for image Layers.
  • Add Colorize effect.
  • Add documentation for the Grayscale effect.
  • Port RelativeResize filter from JmikolaImagineBundle.

0.3.1 (2012-11-12)

  • Add Grayscale effect.
  • Drawer::text position fix.

0.3.0 (2012-07-28)

  • 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.

0.2.8 (2011-11-29)

  • Add support for Travis CI.

0.2.7 (2011-11-17)

  • Use composer for autoloading.

0.2.6 (2011-11-09)

  • Documentation enhancements.

0.2.5 (2011-10-29)

  • Add PEAR support.
  • Documentation enhancements.

0.2.4 (2011-10-17)

  • Add imagine.phar, phar and rake tasks.
  • Add ImagineInterface::read to read from a stream resource.
  • Documentation enhancements.
  • Fix gifs transparency issues.

0.2.3 (2011-10-16)

  • Documentation enhancements.

0.2.2 (2011-10-16)

  • Documentation enhancements.

0.2.1 (2011-10-15)

  • Add PointInterface::move.
  • BoxInterface::scale can accept floats.
  • Set antialias mode for GD images.
  • Fix png compression.

0.2.0 (2011-10-06)

  • 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.

0.1.5 (2011-05-18)

  • Fix bug in GD rotate.

0.1.4 (2011-03-21)

  • Add environment check to gracefuly skip test.

0.1.3 (2011-03-21)

  • Improve api docs.
  • Extract FontInterface.

0.1.2 (2011-03-21)

  • Add check for GD.

0.1.1 (2011-03-21)

  • Add rounding and fixed thumbnail logic.

0.1.0 (2011-03-14)

  • First tagged version.