我试图了解如何使用PHP ImageMagick library在2张图片上应用此过滤器:
convert 1.jpg \( -size 2816x1584 tile:2.jpg \) -compose ColorDodge -composite out.jpg
如何在不使用EXEC / SYSTEM的情况下使用ImageMagick PHP扩展来实现? http://php.net/manual/en/book.imagick.php
答案 0 :(得分:1)
请注意,您的命令行版本有点笨拙,因为它要求您对图像大小进行硬编码。我认为最好克隆原始图像(因此克隆大小相同),然后用模式填充克隆,而不是明确说明大小,创建画布并填充它:
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');
?>
答案 1 :(得分:-1)
我无法测试这个,因为我目前没有安装Imagick,但请查看:
使用prdefined常量imagick :: COMPOSITE_COLORDODGE
的compositeImage