Уменьшить размер изображений с помощью ImageMagick до отношения
Используя ImageMagick, я могу легко получить скриншот того, что хочу, но я бы хотел изменить его размер, чтобы использовать меньше места. Я нашел это:
convert screen.jpg -resize 1280x1024\! screen.jpg
Но я бы хотел изменить его на основе самого большого размера (ширина или высота), а другой (высота или ширина) тоже будет пропорционально изменен.
Например, скажем, я хочу, чтобы все мои изображения были изменены до 600 пикселей с максимальным размером ширины/высоты:
- 1920x1200 = > ширина самая большая: 600x375
- 600x1200 = > высота самая большая: 300x600
Как я могу сделать это с помощью ImageMagick?
(или, по крайней мере, определяя один максимальный размер (например, только ширину)).
Спасибо за вашу помощь!
Примечание: возможно ли реализовать его с помощью команды import
?
Ответы
Ответ 1
Чтобы сохранить соотношение сторон, вы можете уменьшить изображение по определенной шкале:
convert -resize 50% screen.jpg
Или используйте область пикселей:
convert -resize 180000 @screen.jpg
Это также взорвет небольшие изображения в указанную область. Если вы хотите, чтобы ImageMagick уменьшал ваши большие изображения, но сохранял маленькие изображения нетронутыми, используйте оператор " > ":
convert -resize '180000 @ > ' screen.jpg
Обратите внимание, что тогда вам нужно указать аргумент геометрии, чтобы ваша интерпретация оболочки интерпретировалась знаком " > " как файловым перенаправлением.
См. документацию ImageMagick для этих и других опций: http://www.imagemagick.org/script/command-line-processing.php#geometry
Ответ 2
Чтобы сохранить соотношение сторон:
convert -resize 600x600 screen.jpg:
- 1920x1200 = > 600x375
- 600x1200 = > 300x600
- 150x300 = > 300x600
- 300x150 = > 600x300
convert -resize 600x600\> screen.jpg:
- 1920x1200 = > 600x375
- 600x1200 = > 300x600
- 150x300 = > 150x300 (не изменен для большего размера)
- 300x150 = > 300x150 (не изменяет размер до большего размера)