gpt4 book ai didi

php - 可以使用 PHP ImageMagick 获得透明渐变吗?

转载 作者:行者123 更新时间:2023-12-05 09:00:13 24 4
gpt4 key购买 nike

一些调子:

$gradient->newPseudoImage($width, $height, "gradient:transparent-transparent");

基本上,我希望为上传的图片创建湿地板效果。到目前为止,您似乎只能将渐变创建为纯色。

最佳答案

事实证明,如果您正在克隆的图像没有设置 alpha channel ,则您无法创建从图像到透明背景的渐变(至少,我找不到方法)您可以做的是测试 alpha channel 并在需要时进行设置。如果您有兴趣,这里是工作代码:

$im = new Imagick('image.jpg');

if (!$im->getImageAlphaChannel()) {
$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_SET);
}

$refl = $im->clone();
$refl->flipImage();

$gradient = new Imagick();

$gradient->newPseudoImage($refl->getImageWidth() + 10, $refl->getImageHeight() + 10, "gradient:transparent-black");

$refl->compositeImage($gradient, imagick::COMPOSITE_DSTOUT, 0, 0);

$canvas = new Imagick();

$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;

$canvas->newImage($width, $height, 'none');
$canvas->setImageFormat('png');

$canvas->compositeImage($im, imagick::COMPOSITE_SRCOVER, 20, 10);
$canvas->compositeImage($refl, imagick::COMPOSITE_SRCOVER, 20, $im->getImageHeight() + 10);

这将使用普通的 jpg 并将其转换为 png,反射逐渐淡入透明背景。

$canvas->writeImages("new.png", true);

关于php - 可以使用 PHP ImageMagick 获得透明渐变吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4727197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com