Змінити розмір зображення до певного значення висоти в ImageMagick?


27

Я оглянув це, і не можу знайти легко реалізоване рішення.

В даний час я працюю над додатком, який займається панорами. Коли вони виходять із процесу пакетного зшивання, розміри в середньому становлять 18000x4000. Використовуючи ImageMagick, як я можу зменшити масштаб цих зображень на певне значення висоти, зберігаючи співвідношення сторін?

Згідно з посібником, convertоперація займає як висоту, так і ширину, щоб змінити розмір, зберігаючи однакове співвідношення сторін. Що я хотів би, щоб розмістити 600 та 1000 у моїй існуючій функції сценарію зміни розміру і мати як звичайне зображення, так і зменшений розмір.


IIRC він використовує менший розмір як основу для операції зміни розміру, тобто, якщо ви вказали щось на зразок 20000x600, він буде використовувати висоту 600 як основу для обчислення перетвореної ширини, щоб він підтримував співвідношення сторін. Чи я зрозумів себе?
відхилення

Чи потрібно це ImageMagick? Команди Phatch можуть бути написані, команда 'fit' робить саме те, що ви шукаєте. photobatch.wikidot.com/action-fit
Veazer

Відповіді:


37

Відповідно до документації ImageMagick, я пропоную використовувати -geometry x600, тоді як x600означає, що нове зображення має висоту 600 px з тим же співвідношенням сторін , що і старе зображення.


Для одного зображення ви можете запустити:

convert input.png -geometry x600 output.png

Якщо ви віддаєте перевагу конвертувати всі образи папки за один запуск, переключіться на неї (тобто cd ~/Pictures/panoramas/) та використовуйте

mogrify -geometry x600 *.png

Але будьте обережні з цим, оскільки воно перезаписує вихідні файли зображень . Щоб цього не сталося

  1. створити нову папку ( mkdir ~/Pictures/panoramas/small)
  2. скопіюйте зображення в цю папку ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small) та
  3. редагуйте зображення в цій новій папці ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png).

1

щоб змінити розмір усіх файлів у папці, можна використовувати щось на кшталт

mogrify -розмір 800x1094! * jpg # зберегти співвідношення сторін зображення

--- змінити розмір та розширення, як підходить


1
Це не підтримує співвідношення сторін вихідного зображення
Роб

1
@Rob, якщо ви хочете зберегти пропорцію, залиште "!" з.
Ерік

Дякую @Erick, він досить старий, але, швидше за все, я зазначив, що ця відповідь відповідає не правильно, оскільки ОП хотів зберегти співвідношення сторін. : D
Роб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.