Php 使用透明PNG作为剪辑遮罩

Php 使用透明PNG作为剪辑遮罩,php,gd,imagick,Php,Gd,Imagick,是否可以拍摄此图像: 然后用这个面具: 把它变成这样: 使用GD或Imagick?我知道可以使用形状遮罩图像,但我不确定如何继续使用预先创建的字母透明图像进行遮罩我想你在找。我用它来做水印,我相信它会达到你想要的效果。使用Imagick和ImageMagick version>6(我不知道它是否适用于旧版本): 使用(ImageMagick)而不是GD的工作非常出色。。我看到这个问题的标签是GD 以下是此链接的GD版本: 我只是做了一些搜索,显然我可以使用Wideimage()库来完

是否可以拍摄此图像:

然后用这个面具:

把它变成这样:


使用GD或Imagick?我知道可以使用形状遮罩图像,但我不确定如何继续使用预先创建的字母透明图像进行遮罩我想你在找。我用它来做水印,我相信它会达到你想要的效果。

使用Imagick和ImageMagick version>6(我不知道它是否适用于旧版本):

使用(ImageMagick)而不是GD的工作非常出色。。我看到这个问题的标签是GD

以下是此链接的GD版本:

我只是做了一些搜索,显然我可以使用Wideimage()库来完成这项工作。但是有没有一种方法比使用一个完整的库来实现这个功能更简单呢?不,我不相信。我不是在合并图像,而是在使用一个图像遮罩现有图像。结果图像为字母透明。反转遮罩。使中心平移,边缘将淡入白色。然后将图像裁剪或缩放到遮罩大小。当然,这是以白色背景为前提的。如果白色不可行,你是在做黑白的吗?如果是这样的话,选择一种奇怪的颜色(亮粉色或色度绿色,如果你也有颜色的话,这两种颜色都可以)。将真彩色图像和遮罩设置为该颜色,然后将调色板颜色设置为透明。所以,是的,我认为它会起作用,只需要从各个角度尝试一下。谢谢!我在找这个!效果很好。
// Set image path
$path = '/path/to/your/images/';

// Create new objects from png's
$dude = new Imagick($path . 'dude.png');
$mask = new Imagick($path . 'dudemask.png');

// IMPORTANT! Must activate the opacity channel
// See: http://www.php.net/manual/en/function.imagick-setimagematte.php
$dude->setImageMatte(1); 

// Create composite of two images using DSTIN
// See: http://www.imagemagick.org/Usage/compose/#dstin
$dude->compositeImage($mask, Imagick::COMPOSITE_DSTIN, 0, 0);

// Write image to a file.
$dude->writeImage($path . 'newimage.png');

// And/or output image directly to browser
header("Content-Type: image/png");
echo $dude;