1

在这里,我必须缓存大约 2000 个 favicon.ico 文件以提高性能。我抓取文件并尝试通过 IMagick (v.6.6.0) 和 PHP 5.3.5 缩小它们的 PHP 代码是

try {
$image = new Imagick($im_hint . ':' . BASE . '/upload/favicon.ico');
$image->cropThumbnailImage(16, 16);
$image->setImageFormat('ico');
$image->writeImage(BASE . '/favicons/' . $id[0] . '/' . $id[1] . '/' . $id[2] . '/' . $id . '.ico');
} catch (Exception $e) { die($e->getMessage()); }

其中 $im_hint 可以是 ico、png、jpg 等。对于 99% 的文件,一切都很好,我得到了一个可用的 ICO 文件。但是对于百分之一的文件,我只得到一个空白的 ICO 文件,我不知道为什么?此代码失败的 ICO 文件的一个示例是http://www.augensound.de/favicon.ico 我试图注释掉cropThumbnailImage 调用并尝试使用 setFormat 而不是 setImageFormat 并尝试将其保存为 PNG...但没有任何效果。也不例外。

问候

4

1 回答 1

0

不是您的问题的答案,但是当我在 IrfanView 或 PhotoImpact 中打开示例文件时,我也会得到一个空白图像。它不是多页/多分辨率文件,因此无需切换。画布只是空白。

不过,Windows 7 的内置预览效果很好。

可能是 IM 无法处理这些文件,因为它们的格式或子格式错误。

于 2011-02-21T14:35:12.717 回答