Обратите внимание, что ваш командной строки версия является немного неуклюжий, поскольку для этого требуется жестко закодировать размер изображения. Я думаю, что предпочтительнее, чтобы клонировать исходное изображение (поэтому клон имеет тот же размер), а затем заполнить клон с рисунком, а не явного указания размера, создавая полотна и наполняя его:
convert 1.jpg \(+clone -fill pattern:checkerboard -draw "color 0,0 reset" \) -compose colorDodge -composite result.png
В PHP, вы можете сделать это, как это, используя это в качестве 1.jpg
и шахматной доски, как 2.jpg
#!/usr/local/bin/php -f
<?php
$img1 = new Imagick("1.jpg");
$img2 = clone $img1;
$texture = new Imagick("2.jpg");
$img3 = $img2->textureImage($texture);
$img1->compositeImage($img3, Imagick::COMPOSITE_COLORDODGE, 0, 0);
$img1->writeImage('result.jpg');
?>
Просьба уточнить дальше, что вы имеете в виду под «функцией», и что следует код ImageMagick делать. –
Привет, код отправлен правильно, и он применяет фильтр ColorDodge к двум изображениям, я просто хочу «перевести» его с помощью PHP-функции imagick ... – Gabri
Был ли мой ответ или какие-либо другие ответы на ваши вопросы? Если да, пожалуйста, подумайте о том, чтобы принять его как ваш ответ - нажав полый зеленый галочку/галочку рядом с подсчетом голосов. Если нет, скажите, пожалуйста, что не сработало, чтобы я или кто-то еще помог вам дальше. Благодарю. –