Как сократить изображение на 30% в Unix?


15

Я хочу сократить 30% от верхней части изображения. Я знаю ветку Как разрезать действительно большое растровое изображение на более мелкие куски? но нет успешного подхода, потому что я не могу найти меру расстояния convertот нуля до конца , только по измерениям абсолютных значений. ПСЕВДОКОД

convert -crop-y -units-percentage 0x30 heart.png 

Рис. 1 Входной рисунок

введите описание изображения здесь

Я могу выполнить задачу с помощью LaTeX, adjustboxно вывод в pdf-файле на самом деле не конечный результат, а его представление. Таким образом, копирование изображения из документа PDF дает исходное изображение. Так что этот подход не удался.


1
Вы можете использовать imagemagick's, identifyчтобы увидеть, насколько велико изображение.
pfnuesel

Общий подход заключается в том, чтобы вставить значение, необходимое в командной строке, используя $(command). Затем вам просто нужно написать командную строку, которая может рассчитать необходимое значение. Здесь вы можете попросить команду convert описать изображение и направить его в awk, где вы можете найти нужное значение, выполнить необходимые вычисления и распечатать результат.
Турбьёрн Равн Андерсен

Ответы:


23

Вы можете обрезать процент вашего изображения, хотя в этом случае, чтобы избежать запуска дополнительных команд для получения высоты и ширины изображения (чтобы вычислить смещение обрезки, которое по умолчанию относительно верхнего левого угла), вам также придется обрезать относительно силы тяжести (чтобы положение смещения обрезки было относительно нижнего левого угла изображения):

convert -gravity SouthWest -crop 100x70%x+0+0 infile.jpg outfile.jpg

Подтверждено, этот подход работает! - Вы можете полностью изменить этот подход и т. Д., NorthWestЧтобы сократить снизу. Большой!
Лео Леопольд Герц,

5

Команда должна быть:

convert heart.png -gravity south -crop 100x70% +repage heart-out.png

1
@ LéoLéopoldHertz 준영 Я неправильно понял вопрос, попробуйте изменить, пожалуйста
GAD3R

1
Ваш новый подход сокращается в абсолютных единицах, а не в процентах. Теперь правильное направление реза сверху.
Лео Леопольд Херц 준영
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.