9

是否可以拍摄此图像:

图像1

并应用这个面具:

面具

并把它变成这样:

图2

使用 GD 还是 Imagick?我知道可以使用形状来掩盖图像,但我不确定如何继续使用预先创建的 alphatransparent 图像进行操作。:秒

4

3 回答 3

15

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

// 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;
于 2010-02-28T13:32:26.573 回答
1

我认为您正在寻找imagealphablending。我将它用于水印,我相信它会达到您想要的效果。

于 2009-11-16T14:53:26.800 回答
0

与 (ImageMagick) NOT GD 的出色合作。我看到这个问题的标签是 GD!

这是此链接上的 GD 版本: PHP GD 使用一个图像掩盖另一张图像,包括透明度

于 2012-06-05T12:16:02.933 回答