Вычисление нового размера изображения с использованием строки формата imagemagick и ширины / высоты - PullRequest
4 голосов
/ 05 октября 2011

В веб-приложениях рекомендуется использовать атрибуты width и height для тегов img - это позволяет браузеру быстрее визуализировать страницу.

Если у меня есть ширина и высота изображения, истрока формата imagemagick (то есть «300>»), как я могу получить размер, до которого будет изменено это изображение?Я надеюсь, что в imagemagick есть несколько хуков / функций, которые позволят мне получить доступ к этой информации.

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

По сути, я хочу следующую функцию:

def get_image_size(width, height, format_string)
  # ... magic here
  return [new_width, new_height]
end

width, height = get_image_size(300, 400, '235x235!')
# would return 235 and 235

width, height = get_image_size(300, 400, '700x700>')
# would return 300 and 400

width, height = get_image_size(300, 400, '100x100')
# would return 75 and 100

1 Ответ

3 голосов
/ 14 октября 2011

Использование следующей команды ImageMagick convert дает то, что вы хотите. Это должно легко быть переведено на любой API языка ImageMagick , который вы выберете.

$ convert -size 300x400 xc:white -resize '235x235!' info:- | cut -d\  -f3
235x235
$ convert -size 300x400 xc:white -resize '700x700>' info:- | cut -d\  -f3
300x400
$ convert -size 300x400 xc:white -resize '100x100' info:- | cut -d\  -f3
75x100
...