Favicon到PHP的PNG

时间:2011-01-03 13:37:41

标签: php png favicon

我需要一个PHP脚本来将favicon转换为PNG,同时保持其原始尺寸。

我知道Google有它的秘密图标转换器 - http://www.google.com/s2/favicons?domain=http://facebook.com/但是这会将favicons转换为16x16,即使它们原本更大。所以基本上我需要这个,减去收缩效应。

我也看过这个 - http://www.controlstyle.com/articles/programming/text/php-favicon/但是经过几个小时的乱搞后我无法让它工作。

基本上我试图自动获取一个尽可能大的链接图标 - 基于URL自动48x48 png将是完美的场景,但我不知道有任何人性化的方法来做到这一点鉴于没有任何网站将48x48图标保存在可公开访问的位置。

有人知道脚本/服务或有建议吗?谢谢!

6 个答案:

答案 0 :(得分:4)

所以我最终使用了一个名为FloIcon的类,它可以将BMP转换为ICO。我应该注意,检查图标的文件类型并不要假设.ico意味着bmp因为某些网站(如Facebook)实际上是PNG)这一点非常重要。

@ goker.cebeci您的服务看起来很棒!最重要的是,我需要我的图标尽可能的最大尺寸,所以我只编写了自己的脚本。

答案 1 :(得分:3)

这是一个从bmp(ico)转换为png的函数 http://us3.php.net/manual/en/function.imagecreate.php#53879

  1. 将ico下载到您的服务器(file_get_contents或其他方法)通常是基本网址的favicon.ico,或者抓取<link rel="shortcut icon" href="ico_url_here" type="image/x-icon" />元素的html代码并解压缩href
  2. 使用上面链接中的功能转换为png
  3. 使用GD功能打开并调整大小
  4.   

    $ image = imagecreatefrompng($ filename);
      $ resized_image = imagecreatetruecolor($ NewWidth,$ NewHeight);
      imagecopyresampled($ resized_image,$ image,0,0,0,0,$ NewWidth,$ NewHeight,$ OriginalWidth,$ OriginalHeight);

    4保存文件(imagepng或类似文件)

答案 2 :(得分:2)

我在 favicon PNG 转换器网络服务项目中使用了 Imagemagick

convert "favicon.ico" -thumbnail 16x16 -alpha on -background none -flatten "favicon.png"

某些网站的favicons有场景,其大小超过16x16像素 例如:http://blogger.com/favicon.ico

http://www.google.com/s2/favicons?domain=http://facebook.com/无效。所以,我为此开发了一个Web服务。

如果您想尝试我的网络服务,您可以这样做 http://geticon.org/of/http://facebook.com/或者这样 http://geticon.org/of/facebook.com

答案 3 :(得分:1)

http://www.controlstyle.com/articles/programming/text/php-favicon/处的代码错误很小:

您需要将$entry['swBitCount']更改为$entry['wBitCount']。当我改变所有工作时

答案 4 :(得分:0)

imagecopyresized - the docs contains the example as well

以上要求使用选项--with-gd

进行编译

我认为你也不知道imagick extension

等: all possible image processing extensions/functions

答案 5 :(得分:0)

我在这里使用:http://plugins.trac.wordpress.org/browser/wp-favicons/trunk/plugins/filters/convert_to_png.php来自这里的lib:http://www.tom-reitz.com/2009/02/09/ico-images-in-facebook-profile-boxes/

(我不想先将ico保存到磁盘上)

lib的唯一问题是它有时会在XOR上失败,例如在这个图标上:http://www.slatch.com/

所以这是我需要修复的东西,但此外它对数以千计的图标也很有效。