Imagick конвертировать в ICO не удается для некоторых файлов - PullRequest
1 голос
/ 21 февраля 2011

здесь я должен кэшировать около 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 ... но ничего не работает. Также нет исключения.

Привет

1 Ответ

0 голосов
/ 21 февраля 2011

Не ответ на ваш вопрос, но я также получаю пустое изображение, когда открываю файл примера в IrfanView или PhotoImpact. Это не многостраничный файл / файл с несколькими разрешениями, поэтому переключать нечего. Холст просто пустой.

Встроенный предварительный просмотр в Windows 7 делает это нормально.

Возможно, что IM не может справиться с этими файлами, потому что они имеют неправильный формат или субформат.

...