![Заставить GraphicsMagick изменить размер изображения до определенной ширины](https://rvso.com/image/97419/%D0%97%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20GraphicsMagick%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BE%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%8B.png)
Я выполняю пакетную обработку папки изображений до одинаковой ширины с помощью GraphicsMagick (хотя предполагаю, что то же самое применимо и к ImageMagick):
$ gm convert -resize 1000x in.jpg out.jpg
Но когда я просматриваю некоторые изображения, я получаю 999px
вместо 1000px
.
$ gm identify -verbose out.jpg
==> Image: out.jpg
==> Format: JPEG (Joint Photographic Experts Group JFIF format
==> Geometry: 999x591
Есть ли способ принудительно установить правильную ширину? Я предполагаю, что он делает какие-то оценки, чтобы сохранить пропорции.
решение1
Разобрался, вы используете восклицательный знак, чтобы обеспечить соблюдение выбранного размера. ИзДокументация GraphicsMagick:
Добавьте восклицательный знак к геометрии, чтобы принудительно задать размер изображения точно по указанному вами размеру. Например, если указать 640x480!, ширина изображения будет установлена на 640 пикселей, а высота на 480.
Итак, из примера выше:
$ gm convert -resize 1000x! in.jpg out.jpg
В результате получается изображение шириной ровно 1000 пикселей:
$ gm identify -verbose out.jpg
==> Image: out.jpg
==> Format: JPEG (Joint Photographic Experts Group JFIF format
==> Geometry: 1000x591