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

PHP与SEO 投稿&转载 245浏览
摘要:
最近发现自己的工具箱网站,图片生成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多代码……

推荐阅读

zblogphp调用指定ID文章和tags标签的方法

对于一些CMS风格的主题来说,首页内容的布局是一个让人头疼的问题。zblogphp系统文章除了置顶没有其他的标注方式,要想显示特定区域的指定文章还得自己动手。今天分享几个zblogphp调用任意指定文章ID的方法。代码如下:。上面的1,2,3,4是文......

Zblog报错Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133431312 bytes)

前几天在群里看到网友的反馈。编辑文章时,会出现以下错误,导致文章编辑不成功。而新建的测试文章中没有发现问题,只是部分文章编辑异常。错误代码:允许内存大小134217728字节用尽,百度,大概意思是内存溢出。这是因为PHP中的memory_limit参......

PHP报错:The each() function is deprecated. This message will be suppressed on further

已弃用:each()函数已弃用。该消息将在第xxx行的/xxx/xxx.php中的进一步调用中被禁止...