doumao8355 2012-05-09 11:35
浏览 406
已采纳

如何使用Imagick创建画布效果?

I am trying to replicate the canvas texture style effect on a photo using the Imagick php class as seen here under the heading 'texture':

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

Using the command line it can be achieved like this:

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

However I am using the 'Imagick' php class for ImageMagick and I can't seem to work out how to tile the texture.

I have tried:

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

But all I end up with is the texture image composited on the the source image in the top left corner.

How can I recreate the effect in the link?

  • 写回答

1条回答 默认 最新

  • doutuan8887 2012-05-09 11:48
    关注

    Looking at the imagick php there is http://php.net/manual/en/imagick.textureimage.php You may not be able to do what you want with Imagick as it has limited options. A bit of lateral thinking: Make a canvas the size of the image and tile the texture across it then composite it?

    You could do it with ( untested ):

    exec("composite texture_fabric.gif pagoda_sm.jpg -tile -compose Hardlight photo_texture.jpg"); 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?