Обнаружение ориентации изображения с помощью ImageMagick
-
21-09-2019 - |
Вопрос
Я хочу изменить размер картинки до нового размера, используя один параметр: ширина.
Если изображение горизонтальна, новый размер будет: ширина = ширина, высота = пропорционален ширине.
И если изображение вертикально, новый размер будет: высота = ширина, ширина = пропорциональная высоте.
Есть идеи, как это реализовать?
Я использую Imagemagick с оболочкой Magicknet.
Решение
Из ссылки на использование в http://www.imagemagick.org/usage/resize/
convert org.jpg -resize widthxwidth final.jpg
Например, ширина может быть 256x256
Соотношение сторон будет сохранено, и изменение размера будет выполнено в пределах границы площадью 256 x 256 пикселей.
Цитируется со страницы выше:
Изменение размера вписывает изображение в запрошенный размер. Это не заполняет, запрошенное размер коробка.
Другие советы
Я не уверен, что именно вы здесь имеете в виду. Вы говорите, что просто хотите определить ширину, но в случае «вертикального» вы устанавливаете высоту шириной? В любом случае, если вы хотите что-то изменить размер, используя только ширину, используйте этот псевдокод:
ratio = width / height
newWidth = <the new width>
newHeight = newWidth / ratio
Если вы хотите изменить размер самый длинный размер до данного значения, попробуйте:
ratio = width / height
if ratio > 1 // wider than it is tall
newWidth = <theValue>
newHeight = newWidth / ratio
else // taller than it is wide
newHeight = <theValue>
newWidth = newHeight * ratio