php生成ico图标透明背景变黑的解决办法

PHP与SEO 投稿&转载 845浏览
摘要:
最近发现自己的工具箱网站,图片生成ICO功能如果用的是透明背景,生成的图片会变成黑色,如果这样拿来做favicon.ico,会非常不美观的,于是在网上找到了解决办法,最后修复了这一问题,非常赞

php将图片生成ico的代码不用多说了,度娘会告诉你有很多的,只是都不能将png和gif的背景透明(如果原图是透明背景,生成ico文件后背景就变成黑色了)。这里只是简要说说如果实现让png、gif图片生成ico时实现原来的透明背景效果。

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提示:Warning: count():Parameter must be an array or an object that implements Countable

错误原因:PHP7.2以后,count()函数的参数无效时会抛出warning警告。...

PHP7.4 报错:Deprecated Functionality: implode(): Passing glue string after array is deprecated.

PHP7.4运行项目报错:Deprecated Functionality: implode(): Passing glue string after array is deprecated。只需交换 implode() 函数的两个参数!...

百度自动推送php实现代码

我们知道主动推送有助于搜索引擎抓取和收录网站内容,wordpress或者主流CMS其实已经集成了推送功能。但是如果我们要定期归还,而不是只在发布的时候推一次。这个功能可以通过结合PHP和Pagoda Panel的预定任务来实现。$api = '百度站......