【问题标题】:imagick convert to ico fails for some files对于某些文件,imagick 转换为 ico 失败
【发布时间】:2011-02-21 14:27:24
【问题描述】:

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

问候

【问题讨论】:

    标签: php image imagemagick ico


    【解决方案1】:

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

    不过,Windows 7 的内置预览可以很好地呈现它。

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

    【讨论】:

    • 好的,感谢您的提示。在 Windows XP 上的 Firefox 3.6 中,一切都很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2011-07-03
    • 2015-11-17
    • 2023-03-21
    相关资源
    最近更新 更多