【问题标题】:How to create canvas effect with Imagick?如何使用 Imagick 创建画布效果?
【发布时间】:2012-05-09 11:35:50
【问题描述】:

我正在尝试使用 Imagick php 类在照片上复制画布纹理样式效果,如在标题“纹理”下看到的:

http://www.imagemagick.org/Usage/photos/

使用命令行可以这样实现:

composite texture_fabric.gif  pagoda_sm.jpg \
            -tile   -compose Hardlight    photo_texture.jpg

但是,我使用 ImageMagick 的 'Imagick' php 类,但我似乎无法弄清楚如何平铺纹理。

我试过了:

$im = new Imagick("source.jpg")
$img2 = new Imagick("texture.gif");
$im->compositeImage($img2, imagick::COMPOSITE_HARDLIGHT, 0, 0);

但我最终得到的只是在左上角的源图像上合成的纹理图像。

如何重新创建链接中的效果?

【问题讨论】:

    标签: php imagemagick imagick


    【解决方案1】:

    看看imagick php有http://php.net/manual/en/imagick.textureimage.php 您可能无法使用 Imagick 做您想做的事情,因为它的选项有限。 一点横向思考: 制作一个与图像大小相同的画布并在其上平铺纹理然后合成它?

    您可以使用(未​​经测试):

    exec("composite texture_fabric.gif pagoda_sm.jpg -tile -compose Hardlight photo_texture.jpg"); 
    

    【讨论】:

    • 简单...我真的希望有一个内置功能,但正如你所说,它似乎没有。我使用了您的第一个解决方案,因为我想尽可能地留在 Imagick 中。非常感谢!
    猜你喜欢
    • 2012-11-23
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2021-01-01
    • 2021-11-23
    相关资源
    最近更新 更多