摘要:
最近发现自己的工具箱网站,图片生成ICO功能如果用的是透明背景,生成的图片会变成黑色,如果这样拿来做favicon.ico,会非常不美观的,于是在网上找到了解决办法,最后修复了这一问题,非常赞
php将图片生成ico的代码不用多说了,度娘会告诉你有很多的,只是都不能将png和gif的背景透明(如果原图是透明背景,生成ico文件后背景就变成黑色了)。这里只是简要说说如果实现让png、gif图片生成ico时实现原来的透明背景效果。
只需要利用两个函数imagesavealpha和imagealphablending即可达到效果,亲测无问题,下面是代码片段:
……此处省略n多代码……
$im = imagecreatefrompng($FILE['tmp_name']);
$resize_im = imagecreatetruecolor(32,32);
// 下面三行是重点,解决png、gif透明背景变黑色的问题
imagesavealpha($im, true);
imagealphablending($resize_im, false);//不合并颜色,直接用$im图像颜色替换,包括透明色;
imagesavealpha($resize_im, true);//不要丢了$resize_im图像的透明色;
imagecopyresampled($resize_im, $im, 0, 0, 0, 0, $size, $size, $imginfo[0], $imginfo[1]);
……此处省略n多代码……
本文来源:【php将图片生成ico文件时png/gif透明背景变成黑色无法透明的解决方法】
由思享SEO博客编辑转载,仅用于参考学习,如有侵权请联系本站修改删除!