当前位置:首页 > PHP教程 > PHP常见问题

php缩小png图片不损失透明色的解决方法

主要是利用gd库的两个方法:

复制代码 代码如下:

imagecolorallocatealpha //分配颜色 + alpha

imagesavealpha //设置在保存 png 图像时保存完整的 alpha 通道信息

代码示例:

复制代码 代码如下:

//获取源图gd图像标识符
$srcimg = imagecreatefrompng('./src.png');
$srcwidth = imagesx($srcimg);
$srcheight = imagesy($srcimg);

//创建新图
$newwidth = round($srcwidth / 2);
$newheight = round($srcheight / 2);
$newimg = imagecreatetruecolor($newwidth, $newheight);
//分配颜色 + alpha,将颜色填充到新图上
$alpha = imagecolorallocatealpha($newimg, 0, 0, 0, 127);
imagefill($newimg, 0, 0, $alpha);

//将源图拷贝到新图上,并设置在保存 png 图像时保存完整的 alpha 通道信息
imagecopyresampled($newimg, $srcimg, 0, 0, 0, 0, $newwidth, $newheight, $srcwidth, $srcheight);
imagesavealpha($newimg, true);
imagepng($newimg, './dst.png');



【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!