繁体   English   中英

使用PHP在GD库中的imagepng()和透明度

[英]imagepng() and transparency in GD library with PHP

在PHP中使用函数imagepng()时,如何确保保存的图像以透明背景保存?

只需这样做:

imagealphablending($img, false);
imagesavealpha($img, true);

在输出之前。 确保所有源文件(如果您使用的话)都设置为带透明度的32位PNG - 如果不是,输出可能因黑色背景而不同或透明度不符合。

这是一个例子

     $newimage = imagecreatetruecolor($dst_w, $dst_h);
     imagealphablending($newimage, false);
     imagesavealpha($newimage, true);
     $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
     imagefill($newimage, 0, 0, $transparentindex);

以下是imagecolortransparent函数的示例(如果有帮助):

<?php
// Create a 55x30 image
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Make the background transparent
imagecolortransparent($im, $black);

// Draw a red rectangle
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Save the image
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

有一个名为imagecolortransparent的功能,允许您设置哪种颜色是透明的。 我不知道这是否能回答你的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM