@quex

Как обрезать картинку в Graphics Magick?

На вход подаются форматы:
- jpeg (которые обрезать, в общем-то, не нужно);
- png, некоторые из которых имеют прозрачный фон и которые необходимо обрезать, вот пример.
После обработки изображения сохраняются в формате jpeg с черным фоном и фиксированным размером (в случае если источником был прозрачный png).

Применение "-trim" не дает нужного результата: png с прозрачностью обрезаются как надо, но под раздачу попадают изображения, имеющие однородный фон, причем частенько отрезает огромные куски от изображения.
Пробовал комбо "-border 1x1 -bordercolor transparent -trim", частично решило проблему, но изображения, содержащие подавляющее количество черного цвета (на краях и в центре) тримятся до размеров 0х0 в результате имеется просто черную картинку установленного размера на выходе. Я так понял что "-bordercolor transparent" не дает нужного эффекта и бордер в реальности получается черным, далее триминг происходит по черному цвету - потому и имеем черное изображение. Предварительная установка "-background transparent" не помогла.

Как сделать, чтобы отрезалась только прозрачная область у png?

GraphicsMagick 1.3.12, NodeJS, модуль использую вот этот, команды задаю через gm.in().
  • Вопрос задан
  • 2631 просмотр
Решения вопроса 1
@quex Автор вопроса
Путем проб и ошибок решение было найдено. Чтобы "-bordercolor transparent" действительно был прозрачным, нужно предварительно добавить matte-канал командой "-matte"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы