PHP处理png图片 保留透明

做了一个图片接口 可以控制输出的图片宽和高  顺便压缩质量

遇到个问题就是png透明图  改完之后 透明底变成黑色了

然后用了网上的方法

$color = imagecolorallocate($new,255,255,255);
imagecolortransparent($new,$color);
imagefill($new,0,0,$color);

但是这个方法太粗暴了  只是把白色替换成了透明色

导致后来出现ios的截图是png格式 白色底全部变成了透明

所以又找到这个方法

$alpha = imagecolorallocatealpha($new, 0, 0, 0, 127);
imagefill($new, 0, 0, $alpha);
imagesavealpha($new, true);

即该有的透明底还有 不该有的也没替换

posted @ 2022-11-30 14:41  niniko  阅读(216)  评论(0编辑  收藏  举报