6

背景:网站图标

我正在编写一个 WordPress 插件来下载网站图标并将它们转换为 png:

http://plugins.trac.wordpress.org/browser/wp-favicons/trunk(GPL2

图标库

问题

在 5.000 个图标中的 1 个(其他图标工作正常...) XOR 功能出现问题。请参阅此处的第 296 行:http: //plugins.trac.wordpress.org/browser/wp-favicons/trunk/plugins/filters/inc/class.ico.php(注意:未初始化的字符串偏移量:64)所以预期的字符串是太小。

例子

一个例子是这个图标:点击这里查看(导航到 slatch.com)

问题

有人知道如何解决这个问题吗?或者知道另一个好的 PHP 图标类,它可以让我通过 get_as_string 而不是 get_from_file 读取 .ico(各种),哪个更好?

附言

我已经读过:

4

4 回答 4

2

您发布的示例图标是单色 (1 BPP)。该库可能不支持如此低的颜色深度。

于 2011-03-31T16:45:23.540 回答
2

我已经编写了一个完整的单元测试包,用于读取支持 1bpp 图像(以及嵌入式 PNG)的 .ico 文件 - 它可以在此处获得https://github.com/lordelph/icofileloader

问题中问题 .ico 的链接已失效,但如果有人遇到类似问题,我很乐意修复该软件包。

于 2017-01-22T10:23:13.127 回答
1

@edelwater

我可能弄错了,但新一代 ICO 文件不是真的是具有不同扩展名的 PNG 吗?这就是我过去创建它们的方式。我可以理解将 jpeg 等其他格式转换为 png,然后更改扩展名。

http://en.wikipedia.org/wiki/Favicon#Standardization

http://en.wikipedia.org/wiki/ICO_(file_format)#PNG_format

这不是一个答案,而是一个参考。

于 2011-03-23T19:19:03.750 回答
0

该类支持 1 bpp(单色)ico 文件。但是,它有一个错误。它无法将每个图像行填充到 4 字节(32 位)边界,因此宽度小于 32 像素的图标无法正确解码。

我将解决这个问题以供我自己使用,但我不确定如何处理它。在这里贴补丁?

于 2012-07-16T00:55:01.370 回答