resize анимированного gif на imagick

it_is_good

Новичок
resize анимированного gif на imagick

Вот здесь есть решение, которое я сообразил

PHP:
<? 

$animation = new Imagick(); //Этот объект будет содержать анимацию 
$animation->setFormat("gif"); //Задание формата для изображений gif 

$im = new Imagick('23.gif'); //анимированное изображение, resize которого будем осуществлять 

foreach ($im as $animation) 
{ 
  $animation->thumbnailImage(200, 0); //Выполняется resize до 200 пикселей поширине и сколько получится по высоте (с соблюдением пропорций конечно) 
  $animation->setImagePage( $animation->getImageWidth(), $animation->getImageHeight(), 0, 0 ); 
} 

header( "Content-Type: image/gif" ); 
echo $animation->getImagesBlob(); //Вывод изображения... если надо сохранить, то вызывается функция writeImage. 
?>

Этот скрипт работает почти со всеми видами .gif анимации, кроме



Кто может помочь с этой проблемой???
 

флоппик

promotor fidei
Команда форума
Партнер клуба
http://www.imagemagick.org/script/command-line-options.php#coalesce

Оно тебе нужно. Дальше обьяснять не буду, плохо мне. Название у тебя есть, копай
 

it_is_good

Новичок
Спасибо за намек, но есть одно большое НО...
флоппик
ты наверное издеваешься, не мог хотя бы пару деньков подождать с ответом. Да гестаповцы так не издевались, как ты. Сегодня 1 января, голова чугунная, еще кто-то по ней долбит кувалдой и работает отбойным молотком...
И ты еще советуешь копать?

-~{}~ 01.01.10 19:00:

Что-то у меня не выходит.

PHP:
foreach ($im as $animation) 
{ 
  $animation->coalesceImages($im); //Убираем оптимизацию
  $animation->thumbnailImage(200, 0); //Выполняется resize до 200 пикселей поширине и сколько получится по высоте (с соблюдением пропорций конечно) 
  $animation->setImagePage( $animation->getImageWidth(), $animation->getImageHeight(), 0, 0 ); 
}
Что я не так делаю???

-~{}~ 02.01.10 11:35:

Блин, весь инет перекопал, но так и не нашел, как прописывать эту функцию coalesceImages().

-~{}~ 04.01.10 02:59:

Ладно, вроде разобрался, но есть одно большое НО. IMagick не правильно определяет размер этой картинки и не только, указывает на несколько пикселей меньше. Как быть с этим косяком, кто знает?
 
Сверху