PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
fogged Отправлено: 05 Марта, 2013 - 10:09:19 • Тема: Imagick: resize/crop (анимированный гиф) • Форум: Графика в PHP

Ответов: 0
Просмотров: 2517
Всем привет.

Пытаюсь реализовать автоматическую генерацию анимированных тюмбнейлов. С генерацией проблем, кажется, не возникает. Имеется анимированная гифка с 15 кадрами 400x300 (см. аттач). Генерирую тюмбнейл без crop:

PHP:
скопировать код в буфер обмена
  1. $gif = new Imagick($filename);
  2.  
  3. do {
  4.   $gif->thumbnailImage(150, 150, true);
  5. } while ($gif->nextImage());
  6.  
  7. $gif = $gif->deconstructImages();


На выходе - 150x112 анимированная гифка:
PHP:
скопировать код в буфер обмена
  1. header( "Content-Type: image/{$gif->getImageFormat()}" );
  2. $img = $gif->getImagesBlob();
  3. echo $img;


А вот с сохранением изображения на диск - проблемы. Если сохраняю методом writeImages, получается файл с одним-единственным кадром:


С другой стороны, полученное содержимое $img можно сохранить на диск функцией file_put_contents, при этом (о, чудо!) сохраняются все 15 кадров, как положено:


В чем может быть проблема? Почему метод writeImages сохраняет только один кадр из 15?

Apache: 2.2.22
PHP: 5.4.6
php5-imagick: 3.1.0


Разобрался:
Это баг совместимости Imagick & PHP5.4
https://bugs.php.net/bug.php?id=61879

Пофикшено в 3.1.0RC2

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB