Я предполагаю, что вы имеете в виду примеры, найденные здесь:
http://www.imagemagick.org/Usage/photos/
С учетом сказанного, я пытался сделать то же самое с PHP Imagick. Я использую PHP Imagick 3.0.1 и ImageMagick 6.7.4-4 2012-01-09 Q16 в Linux.
Похоже, что составной режим размытия недокументирован. Я нашел его, просмотрев исходный код ImageMagick под magick/composite.h
в строке 88
.
Этот код выполняет то, что вы ищете:
$im = new Imagick();
$im->readImageBlob(file_get_contents($src));
$qr = $im->getQuantumRange();
$qr = $qr['quantumRangeLong'];
$im->sigmoidalContrastImage(true, 10, $qr / 2, Imagick::CHANNEL_ALL);
$blurmap = new Imagick();
$blurmap->setOption('compose:args', '5');
$blurmap->newPseudoImage($im->getImageWidth(), $im->getImageHeight(), 'gradient:black-white');
$blurmap->functionImage(Imagick::FUNCTION_POLYNOMIAL, array(4.5, -4.5, 1));
$blurmap->levelImage(0, 1, $qr / 2);
$im->compositeImage($blurmap, 57, 0, 0);
$blurmap->destroy();
Если вам нужно больше размытия, просто измените compose:args
на 10
или что-то в этом роде. Одна вещь, которую я понял, заключалась в том, что мне нужно было установить эту опцию до того, как я создал / загрузил что-либо в саму палочку.
Мне не удалось заставить функцию SparseColorImage()
вести себя так, как в командной строке, хотя я уверен, что кто-то другой мог бы внести свой вклад в эту часть, если бы понял это. Вышеупомянутого достаточно для моих нужд.
РЕДАКТИРОВАТЬ: При дальнейшем просмотре сгенерированных изображений я заметил, что даже черные части карты размытия были размыты. После некоторых поисков выяснилось, что это связано с ошибкой, появившейся в ImageMagick. Я переключился на версию 6.7.8-1 2012-07-05 Q16, и теперь карта размытия работает. Если вы заметили нежелательное размытие с помощью композиции размытия, я предлагаю вам обновить ImageMagick.
person
tbjers
schedule
05.07.2012