На вход подаются форматы:
- 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().