Imagick::coalesceImages

(PECL imagick 2, PECL imagick 3)

Imagick::coalesceImagesКомпонует набор изображений

Описание

public Imagick::coalesceImages(): Imagick

Скомпонованный набор изображений с соблюдением любых смещений страниц и методов удаления. Анимационные последовательности GIF, MIFF и MNG обычно начинаются с фона изображения, и каждое последующее изображение изменяется по размеру и смещению. Возвращает новый объект Imagick, где каждое изображение в последовательности имеет тот же размер, что и первое и скомпоновано со следующим изображением в последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый объект Imagick в случае успешного выполнения.

Ошибки

Функция выбрасывает исключение ImagickException, если возникла ошибка.

Добавить

Примечания пользователей 3 notes

up
6
ktr
12 years ago
resize and/or crop an animated GIF

<?php
$image = new Imagick($file_src);

$image = $image->coalesceImages();

foreach ($image as $frame) {
  $frame->cropImage($crop_w, $crop_h, $crop_x, $crop_y);
  $frame->thumbnailImage($size_w, $size_h);
  $frame->setImagePage($size_w, $size_h, 0, 0);
}

$image = $image->deconstructImages();
$image->writeImages($file_dst, true);
?>
up
2
vikomic at gmail dot com
14 years ago
Here goes an exaple how to resize GIF-s.<?php$imagick = new Imagick("original.gif");$format = $imagick->getImageFormat();if ($format == 'GIF') {  $imagick = $imagick->coalesceImages();  do {     $imagick->resizeImage(120, 120, Imagick::FILTER_BOX, 1);  } while ($imagick->nextImage());  $imagick = $imagick->deconstructImages();  $imagick->writeImages('new_120x120.gif', true);  // can be added some more gifs  $imagick = $imagick->coalesceImages();  do {     $imagick->resizeImage(100, 100, Imagick::FILTER_BOX, 1);  } while ($imagick->nextImage());  $imagick = $imagick->deconstructImages();  $imagick->writeImages('new_100x100.gif', true);}$imagick->clear();$imagick->destroy();?>You can use any resize method (resizeImage) with this example.This example works fine with *imagick module version 2.2.1-dev*, but doesn't work correctly with *imagick module version 3.0.1*.
up
1
Anony
9 years ago
If you wish to open an animated gif, don't ping the image with $imagick->pingImage(), you will get the same amount of frames you have in the gif, added to the start - but they're all black with stripes. So you have then double the amounts of frames the gif actually has.
To Top