您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/2/25 17:13:05发布12次查看
png图片如果带了透明色按照jpg的方式来缩小,就会造成透明色损失。那么如何处理才能保存透明色呢?下面的代码就可以解决这个问题
主要是利用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');

该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product