php - 使用透明 PNG 作为剪贴蒙版

标签 php gd imagick

是否可以拍摄这张图片:

image1

然后应用这个面具:

mask

然后把它变成这样:

image2

使用 GD 还是 Imagick?我知道可以使用形状来遮盖图像,但我不确定如何使用预先创建的 alphatransparent 图像继续这样做。 :s

最佳答案

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

关于php - 使用透明 PNG 作为剪贴蒙版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741488/

相关文章:

php - 在哪里可以找到适用于 Windows wampserver 2.5 的 php 5.5.12 的 php_imagick.dll?

php - 为什么使用 !== FALSE 来检查 php 中的 stripos?

php - 如何使用 Imagemagick PHP API 将 .pdf 文件转换为 .png

php - 如何使用 PHP Imagick 根据文本框大小对齐文本?

php - PNG_ALL_FILTERS,php gd中的自适应过滤

php - 使用 PHP GD 图像库着色和交换颜色?

PHP 降低图像质量直到文件大小达到 1mb

php - 在 PHP 中显示页码

php - SQL : Column is ambigious

javascript - 在基于 css 的选项卡结构中打开特定选项卡