【发布时间】:2013-01-06 06:21:13
【问题描述】:
我正在尝试使用 GD 更改图像的不透明度,我找到的几乎所有解决方案都类似于下面的代码,您可以在其中创建白色透明背景并将其与图像合并。
但这不会使图像透明,图像只会变得更亮,您实际上无法看透它。
所以我的问题是,如何更改图像的不透明度以便您可以看穿它? 还是我对这段代码做错了什么?
//Create an image with a white transparent background color
$newImage = ImageCreateTruecolor(300, 300);
$bg = ImageColorAllocateAlpha($newImage, 255, 255, 255, 127);
ImageFill($newImage, 0, 0, $bg);
//Get the image
$source = imagecreatefrompng('my_image.png');
$opacity = 50;
//Merge the image with the background
ImageCopyMerge($newImage,
$source,
0, 0, 0, 0,
300,
300,
$opacity);
header('Content-Type: image/png');
imagepng($newImage);
imagedestroy($newImage);
谢谢!
【问题讨论】:
-
我不确定,但这只是不打电话给
imagealphablending(或imagesavealpha)的问题吗? -
快速搜索后,可能重复:stackoverflow.com/questions/5529306/…
-
你试过用 CSS 改变不透明度吗?
-
@abarnert 是的,我认为这可能与它有关,我尝试弄乱这些功能,但到目前为止没有运气。我会看看另一个问题。
-
@JohnDoe 使用 CSS 更改不透明度不是我想要做的,我正在尝试使用 PHP 更改它,以便我可以再次保存图像。
标签: php image gd opacity transparent