#php #imagemagick #imagick
#php #imagemagick #imagick
Вопрос:
Я использую последнюю версию ImageMagick с PHP, и это мой код:
$diplacementmap = new Imagick('displacement.png');
$android = new Imagick('android.png');
$android->compositeImage($diplacementmap, Imagick::COMPOSITE_DISPLACE, 0, 0);
echo $android;
По какой-то причине я не получаю ожидаемых результатов. Почему это может быть?
Оба файла отдельно:
Android — https://i.stack.imgur.com/bYbYX.png
Карта смещения — https://i.stack.imgur.com/6g4v9.png
Комментарии:
1. Что происходит при замене изображений?
2. @jrswgtr просто беспорядок разных оттенков серого.
3. Я думаю, что ваш фактический результат гораздо более художественный, чем ожидаемый 😉
4. Пожалуйста, предоставьте свои входные изображения отдельно для тестирования. Спасибо.
5. @MarkSetchell я их добавил. Спасибо.
Ответ №1:
Установите значения смещения равными 10,10 в ImageMagick или Imagick. Когда вы устанавливаете для аргументов значение 0,0, вы можете получить несколько большее значение по умолчанию.
Например, в командной строке:
Ввод:
Карта смещения:
convert android.png displacement.png -define compose:args=10,10 -compose displace -composite result10.png
или при 20
convert android.png displacement.png -define compose:args=20,20 -compose displace -composite result20.png
Комментарии:
1. Спасибо, я добавил это
$android->setImageArtifact('compose:args', '5,5');
, и теперь это именно то, что мне было нужно.