php缩小png图片不损失透明色的解决方法
程序员文章站
2023-12-04 00:02:04
主要是利用gd库的两个方法:复制代码 代码如下:imagecolorallocatealpha //分配颜色 + alpha
imagesavealpha //设置在保存...
主要是利用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');