PECL Imagick adaptiveSharpenImage не работает?
Я пытаюсь отточить свои изображения с помощью этой функции, но она не работает. Какие бы значения я ни передавал для радиуса и сигмы, я получаю одинаковое изображение (даже с одинаковым размером файла).
Возвращает 1, предлагая отсутствие ошибок. Что может быть не так?
$photo = new Imagick(PHOTOS_DIR.$sFilename);
$photo->adaptiveSharpenImage(2,1); //4,2 ... 0,10, 0.5,0.5 - all give identical results
$guid = md5(uniqid(rand(),true));
$photo->writeImage(PHOTOS_DIR.'/temp/'.$guid.'.jpg');
Я пытался пройти в imagick::CHANNEL_BLUE
для необязательного третьего параметра это не имеет значения.
- CentOS 6.5
- PHP 5.5.12
- pecl-imagick 3.1.2
- imagemagick 6.5.4
1 ответ
Функция adaptiveImageSharpen в некоторых случаях очень тонкая. Изображения ниже являются источником, а затем заостренным, произведенным:
$radius = 10;
$sigma = 2;
$imagick->adaptiveSharpenImage($radius, $sigma);
Исходное изображение
Заостренное изображение
Даже при этих относительно больших значениях изображение явно повышается, но эффект заметен только по сравнению с исходным изображением. Радиус, который вы выберете, будет зависеть от размера исходного изображения, но должен быть не менее пары пикселей в поперечнике. В качестве альтернативы вы можете установить радиус нуля, и ImageMagick должен выбрать соответствующее значение для изображения.
В зависимости от того, что вы пытаетесь достичь с помощью заточки, вам может быть лучше и старомодно unsharpMaskImage
если adaptiveSharpenImage
всегда слишком тонкий эффект для вас.
Или это может быть просто сломано на очень старой версии ImageMagick, которую вы используете - можете попробовать пример изображения и настройки выше.