Как обрезать gif изображение с помощью imagick?
Как обрезать gif изображение на php imagick?
1 ответ
|
Вопрос решился:
$imagick = new Imagick('file.gif');
$image = $imagick->coalesceImages();
$crop_w = 20;
$crop_h = 20;
$crop_y = 0;
$size_w = 20;
$size_h = 20;
foreach ($image as $frame) {
$width = $frame->getImageWidth();
$crop_x = $width - 20;
$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('new.gif', true);
Принцип обрезки gif на imagick точно такой же, как и обычных jpg, png изображений за одним исключением: нужно идти в цикле по каждому кадру и обрезать каждый кадр, чтобы в финальном изображении сохранились все кадры и анимация, а не только один статический кадр.
|
||||
|
|