将 imagemagick ColorDodge 函数转换为 imagick
Convert imagemagick ColorDodge function to imagick
我正在尝试了解如何使用 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
我无法测试这个,因为我目前没有在任何地方安装 Imagick,但请查看:
compositeImage 使用预定义常量 imagick::COMPOSITE_COLORDODGE
请注意,您的命令行版本有点笨拙,因为它需要您对图像大小进行硬编码。我认为最好克隆原始图像(因此克隆的大小相同)然后用图案填充克隆,而不是明确说明大小,创建 canvas 并填充它:
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');
?>
我正在尝试了解如何使用 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
我无法测试这个,因为我目前没有在任何地方安装 Imagick,但请查看:
compositeImage 使用预定义常量 imagick::COMPOSITE_COLORDODGE
请注意,您的命令行版本有点笨拙,因为它需要您对图像大小进行硬编码。我认为最好克隆原始图像(因此克隆的大小相同)然后用图案填充克隆,而不是明确说明大小,创建 canvas 并填充它:
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');
?>