在这里,我必须缓存大约 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...但没有任何效果。也不例外。
问候