3

Я хотел бы изменить размер (уменьшить) некоторые изображения так, как это делает Facebook. ImageMagick, но эй, я открыт для предложений :)Facebook-подобный размер изображений с использованием ImageMagick

Я считаю, что Facebook делает это:

Скажем у вас есть максимальная ширина х высота 250x200, Facebook оптимизирует использование этого. Пытается использовать как можно больше 250x200. Если, например, вы уменьшаете изображение и получаете 220x200, то они вырезают сверху и снизу изображения, пока они не будут использовать как можно больше кадра 250x200. На самом деле, я думаю, что они берут больше снизу, чем верх (около 1: 2,5), что, я считаю, связано с тем, что у большинства картин есть голова наверху, и Facebook это понимает.

Есть ли какое-либо название для такого алгоритма изменения размера? И есть ли способ заставить ImageMagick сделать это?

Заранее благодарен!

Редактировать На самом деле, похоже, что Facebook не может делать эту «умную» технику изменения размера. Они просто изменяют размер, когда у них есть minwidth/minheight. Затем, когда они показывают изображение в своем альбоме, они разрезают сверху/снизу или влево/вправо, чтобы использовать как можно больше для кадра (именно так я его воспринимаю как минимум).

-Tobias

+0

На каком языке вы используете? в этом есть много полезных библиотек для такого рода вещей. – fish2000

+0

Сервера javascript. Но кажется, что ImageMagick - хороший способ пойти. – freeall

+0

В Facebook вы выбираете, где находится ваше лицо, а затем просто выполняет простой размер. – erjiang

ответ

1

Вы можете использовать ImageMagick, чтобы получить размеры изображения, масштаб кадрирование. Что касается того, точно ли вы описываете алгоритм использования Facebook, я не знаю.

Я думаю, что следующая ссылка решает эту проблему вы пытаетесь решить:

http://www.imagemagick.org/Usage/resize/#space_fill

В примере они дают в самом конце есть ...

convert logo: \ 
     -resize 160x -resize 'x160<' -resize 50% \ 
     -gravity center -crop 80x80+0+0 +repage space_fill_2.jpg 

Эта команда изменяет размер изображение должно быть 160 пикселей в ширину, изменяет его на 160 пикселей в высоту, занимает больше двух изображений с уменьшенным размером и сжимает его наполовину и обрезает до 80x80.

Следующее может представлять интерес для Вас:

http://www.google.com/search?q=image+entroy+cropping

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

Другой связанный ссылка -

Django, sorl-thumbnail crop picture head

редактирует: добавлены ссылки по теме, указанный пример команды для выполнения подобной задачи со ссылкой на источник, например.

+0

В основном я искал одну команду, чтобы сделать это, поэтому я мог бы делать это на лету, используя только потоки. Чтобы изменить размер ImageMagick, но заполните его как можно больше ограничивающей рамки. – freeall

+0

Я не знаю такой команды, и я не знаю, почему они будут включать такую ​​команду. Предполагается, что ImageMagick выполняет общую обработку изображений. Его цель не в том, чтобы реализовать все манипуляции с изображениями. Возможно, вы могли бы использовать библиотеку ImageMagic или другую библиотеку манипуляций с изображениями, чтобы сделать инструмент для выполнения этой конкретной задачи. – EMPraptor