Предполагам, че имате предвид примерите, намерени тук:
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