Определить ориентацию изображения с помощью 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