Определить ориентацию изображения с помощью ImageMagick

Я хочу изменить размер изображения до нового размера, используя один параметр: Ширина.

Если изображение горизонтальное, новый размер будет таким: ширина = ширина, высота = пропорциональна ширине.

И если изображение вертикальное, новый размер будет: высота = ширина, ширина = пропорциональна высоте.

Есть идеи, как это реализовать?

Я использую ImageMagick с оболочкой MagickNet.

2 ответа

Решение

Из использования ссылки на http://www.imagemagick.org/Usage/resize/

convert org.jpg    -resize widthxwidth  final.jpg

например, widthxwidth может быть 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
Другие вопросы по тегам