如何使用 PHP Imagic 在图像边框处添加渐变透明度

问题描述 投票:0回答:1

我正在构建一个石墨烯,用于代替任何没有石墨烯的用户照片。我通过使用登录并将其转换为白色背景上的几何形状来构建它。一切工作正常,但我希望在图像的边界处逐渐渐变为透明。

目前生成的图像如下

我想让它变得像

我在 Gimp 中生成所需图像的方式是:

  1. 添加完全透明的图层蒙版
  2. 选择整个图像
  3. 以 30 px 为单位选择羽毛
  4. 在选区中用白色填充图层蒙版

我可以使用 Image Magic 在 PHP 中执行类似的转换吗?

php imagick
1个回答
0
投票

是的,我相信是这样,下面是这样做的示例语法 请注意,当我走到我的机器前时,代码没有经过测试,我可以测试和查看代码。

<?php


$imagick = new \Imagick('OxMui.png');


$width = $imagick->getImageWidth();
$height = $imagick->getImageHeight();
echo $width;
// Create a gradient mask
$gradient = new \Imagick();
$gradient->newPseudoImage($width, $height, 'gradient:rgba(255,255,255,0)-rgba(255,255,255,1)');

// Apply the gradient mask to the original image
$imagick->compositeImage($gradient, \Imagick::COMPOSITE_COPYOPACITY, 0, 0);

$imagick->setImageFormat('png');
$imagick->writeImage('output.png');
$imagick->destroy();
© www.soinside.com 2019 - 2024. All rights reserved.