3

Facebook のように、いくつかの画像のサイズを変更 (縮小) したいと思います。ImageMagick、でもねえ、私は提案を受け付けています:)

Facebookはこれを行っていると思います:

最大幅 x 高さが 250x200 だとします。Facebook はこれを最適化しています。250x200 をできるだけ多く使用しようとします。たとえば、画像を縮小して 220x200 を取得した場合、250x200 フレームを可能な限り使用するまで、画像の上部と下部をカットします。実際、私は彼らが上よりも下から多くを取っていると思います (約 1:2.5)。これは、ほとんどの写真が上に頭があり、Facebook がこれを認識しているためだと私は信じています.

この種のサイズ変更アルゴリズムの名前はありますか? そして、ImageMagickにこれをさせる方法はありますか?

前もって感謝します!

編集 実際、Facebook はこの「スマートな」サイズ変更手法を行っていないようです。minwidth/minheight がある場所でサイズを変更するだけです。次に、アルバムで画像を表示するとき、フレームにできるだけ多くを使用するために、上/下または左/右から切り取ります (少なくとも私はそう認識しています)。

-トバイアス

4

1 に答える 1

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 ピクセルに変更し、サイズ変更された 2 つの画像のうち大きい方を取得して半分に縮小し、80x80 にトリミングします。

以下はあなたにとって興味深いかもしれません:

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

画像のエントロピーを使用してトリミングする画像の部分を選択する方法について、いくつかのドキュメントを読みました。

別の関連リンク -

Django、sorl-サムネイルのトリミング画像の頭

編集: 関連するリンクを追加し、例のソースへのリンクを使用して同様のタスクを実行するためのコマンド例を指定しました。

于 2010-10-19T22:53:56.603 に答える