使用透明 PNG 作为剪辑蒙版

发布于 2024-08-11 04:00:12 字数 547 浏览 7 评论 0 原文

是否可以拍摄此图像:

image1

并应用此掩码:

掩码

并将其变成这样:

使用 GD 还是 Imagick?我知道可以使用形状来遮盖图像,但我不确定如何继续使用预先创建的 alpha 透明图像来完成此操作。 :s

Is it possible to take this image:

image1

And apply this mask:

mask

And turn it into this:

image2

Using either GD or Imagick? I know it's possible to mask an image using shapes but I'm not sure how to go on about doing it with a pre-created alphatransparent image. :s

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

握住你手 2024-08-18 04:00:12

使用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;

Using Imagick and ImageMagick version > 6 (I don't know if it will work on older versions):

// 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;
战皆罪 2024-08-18 04:00:12

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

I think you are looking for imagealphablending. I use it for watermarks, and I believe it will do the effect you are looking for.

柠栀 2024-08-18 04:00:12

与(ImageMagick)合作得很好,不是 GD ..我看到这个问题的标签是 GD!

这是 GD 版本,链接如下:
PHP GD 使用一张图像遮盖另一张图像,包括透明度

Great work with (ImageMagick) NOT GD .. I see the tags of this question is GD!!

Here is a GD version at this link:
PHP GD Use one image to mask another image, including transparency

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文