обрезать изображение GIF с помощью libMagick - PullRequest
1 голос
/ 18 июля 2011

Я пытаюсь обрезать изображение в формате gif с помощью библиотеки libMagick.so.

./convert --version 
Version: ImageMagick 6.2.8 03/31/08 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html

с помощью следующей команды:

convert img.gif -crop 91x68+6+116 out.gif

изображение out.gif получает обрезку, ноне по размеру.я получаю тот же размер изображения, в то время как все это прозрачно, за исключением 91 пикселя, начиная с 6 пикселей от левой точки и 68 пикселей, начиная с 116 пикселей сверху.

как я могу сделать команду преобразования обрезкой и оставитьтолько обрезанная часть в качестве выходного изображения.Кстати, когда мое выходное изображение JPG, я получаю ожидаемые результаты.

1 Ответ

3 голосов
/ 18 июля 2011

Вам нужно добавить опцию -repage для файлов GIF:

convert img.gif -crop 91x68+6+116 -repage 0x0 out.gif

Проблема в том, что GIF-изображения могут содержать несколько изображений (разных размеров), когда они анимированы, поэтому обрезка влияет только на одно из изображений, оставляя общий размер холста GIF без изменений. Использование 0x0 для размера холста - это простой способ заставить ImageMagick определить, насколько большим должно быть изображение:

Заданный нулевой размер холста, такой как '0x0' , заставляет его пересчитать размер холста, чтобы изображение (с его текущим смещением) полностью появилось на этом холсте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...