Skip to content

Commit 9190aec

Browse files
authored
Merge pull request #823 from sschueller/develop
feat: Added imagemagick cli default filter SyncFast.
2 parents 9d09a8e + 94744a0 commit 9190aec

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

src/Image/ImageInterface.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,13 @@ interface ImageInterface extends ManipulatorInterface
172172
*/
173173
const FILTER_SINC = 'sinc';
174174

175+
/**
176+
* Resampling filter: sincfast.
177+
*
178+
* @var string
179+
*/
180+
const FILTER_SINCFAST = 'sincfast';
181+
175182
/**
176183
* Returns the image content as a binary string.
177184
*

src/Imagick/Image.php

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,24 +1005,30 @@ private function setColorspace(PaletteInterface $palette)
10051005
*/
10061006
private function getFilter($filter = ImageInterface::FILTER_UNDEFINED)
10071007
{
1008-
static $supportedFilters = array(
1009-
ImageInterface::FILTER_UNDEFINED => \Imagick::FILTER_UNDEFINED,
1010-
ImageInterface::FILTER_BESSEL => \Imagick::FILTER_BESSEL,
1011-
ImageInterface::FILTER_BLACKMAN => \Imagick::FILTER_BLACKMAN,
1012-
ImageInterface::FILTER_BOX => \Imagick::FILTER_BOX,
1013-
ImageInterface::FILTER_CATROM => \Imagick::FILTER_CATROM,
1014-
ImageInterface::FILTER_CUBIC => \Imagick::FILTER_CUBIC,
1015-
ImageInterface::FILTER_GAUSSIAN => \Imagick::FILTER_GAUSSIAN,
1016-
ImageInterface::FILTER_HANNING => \Imagick::FILTER_HANNING,
1017-
ImageInterface::FILTER_HAMMING => \Imagick::FILTER_HAMMING,
1018-
ImageInterface::FILTER_HERMITE => \Imagick::FILTER_HERMITE,
1019-
ImageInterface::FILTER_LANCZOS => \Imagick::FILTER_LANCZOS,
1020-
ImageInterface::FILTER_MITCHELL => \Imagick::FILTER_MITCHELL,
1021-
ImageInterface::FILTER_POINT => \Imagick::FILTER_POINT,
1022-
ImageInterface::FILTER_QUADRATIC => \Imagick::FILTER_QUADRATIC,
1023-
ImageInterface::FILTER_SINC => \Imagick::FILTER_SINC,
1024-
ImageInterface::FILTER_TRIANGLE => \Imagick::FILTER_TRIANGLE,
1025-
);
1008+
static $supportedFilters = null;
1009+
if ($supportedFilters === null) {
1010+
$supportedFilters = array(
1011+
ImageInterface::FILTER_UNDEFINED => \Imagick::FILTER_UNDEFINED,
1012+
ImageInterface::FILTER_BESSEL => \Imagick::FILTER_BESSEL,
1013+
ImageInterface::FILTER_BLACKMAN => \Imagick::FILTER_BLACKMAN,
1014+
ImageInterface::FILTER_BOX => \Imagick::FILTER_BOX,
1015+
ImageInterface::FILTER_CATROM => \Imagick::FILTER_CATROM,
1016+
ImageInterface::FILTER_CUBIC => \Imagick::FILTER_CUBIC,
1017+
ImageInterface::FILTER_GAUSSIAN => \Imagick::FILTER_GAUSSIAN,
1018+
ImageInterface::FILTER_HANNING => \Imagick::FILTER_HANNING,
1019+
ImageInterface::FILTER_HAMMING => \Imagick::FILTER_HAMMING,
1020+
ImageInterface::FILTER_HERMITE => \Imagick::FILTER_HERMITE,
1021+
ImageInterface::FILTER_LANCZOS => \Imagick::FILTER_LANCZOS,
1022+
ImageInterface::FILTER_MITCHELL => \Imagick::FILTER_MITCHELL,
1023+
ImageInterface::FILTER_POINT => \Imagick::FILTER_POINT,
1024+
ImageInterface::FILTER_QUADRATIC => \Imagick::FILTER_QUADRATIC,
1025+
ImageInterface::FILTER_SINC => \Imagick::FILTER_SINC,
1026+
ImageInterface::FILTER_TRIANGLE => \Imagick::FILTER_TRIANGLE,
1027+
);
1028+
if (defined('Imagick::FILTER_SINCFAST')) {
1029+
$supportedFilters[ImageInterface::FILTER_SINCFAST] = \Imagick::FILTER_SINCFAST;
1030+
}
1031+
}
10261032
if (!in_array($filter, static::getAllFilterValues(), true)) {
10271033
throw new InvalidArgumentException('Unsupported filter type');
10281034
}

0 commit comments

Comments
 (0)