ImageMagickを使用して正方形/トリミングされたサムネイルを作成する方法以下のようなトリミング。
これについては、ImageMagickの公式ドキュメントで 「サムネイルを縮小して合わせる」 で説明されています。
別の方法としては、画像をパディングして特定のサムネイルサイズに合わせるのではなく、最終的なサイズに合わない画像の部分を切り捨てます。
もちろん、これは実際には元の画像の一部、特に画像のエッジが失われることを意味しますが、結果として画像の中央部分のサムネイルが拡大されます。これは通常(常にではありませんが)画像の主要な主題なので、サムネイルを作成する実用的な方法です。
IM v6.3.8-3以降、これを簡単にするために、特別なサイズ変更オプションフラグ「^」が追加されました。このフラグを使用してサイズを変更し、目的のサイズからオーバーフローする画像の部分を切り取ります。
そして、例のコマンドのコンテキストでは:
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
Ignacioは正しいドキュメントにリンクしていますが、便宜上ここにインラインで貼り付けます。
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
同様に、次はGraphicsMagickの場合です。
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
説明:
-size 200x200
は、JPEGデコーダにこの解像度のみが必要であることを伝え、メモリを節約し、ソース画像をより速く読み取ることができます。-thumbnail 100x100^
最短の辺を100にする高速リサイズ- gravity center
次の操作を中央揃え-extent 100x100
100x100のキャンバスに画像を適用します+profile "*"
メタ情報をjpegに保存しません(結果の画像を小さくします)それはそれを行う最も簡単な方法です:
次のコマンドは、小さい方の辺のサイズを100ピクセルに変更し、100x100の正方形をトリミングします。 -strip
コマンドを使用して、ファイルサイズを縮小します。
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
他とは異なり、それはメモリを節約しようとはしていません。代わりに、それはあなたが望むものを実行し、それ以上は実行しません。さらに、それは画像をアップスケールしません。
正確なサイズのサムネイルを生成するためにgraphicsmagickを使用していますが、オーバーハングをトリミングする代わりに、チェッカーボードで画像をパディングしています。
gm convert -limit Threads 1 -size 320x180 pattern:checkerboard -background transparent -gravity center -resize 320x180 -extent 320x180 original.jpg -flatten -resize 112x65! -interlace Line 1 thumb_112x65.jpg
gm convert
// Single threaded seems faster on smaller files
-limit Threads 1
// Generate a checkerboard of size 320x180.
// Sets the relative size of the checkerboard squares,
// also sets the desired aspect ratio. In my case (16:9)
-size 320x180 pattern:checkerboard
// Resize the input image and center it on a transparent layer.
-background transparent -gravity center -resize 320x180 -extent 320x180 orig.jpg
// Merge the layers
-flatten
// Resize the output to the desired
// The ! causes the aspect ratio to be ignored, fixing any rounding errors.
// (Specify a size with the same aspect ratio as the checkerboard.)
-resize 112x65!
// Use Progressive JPEG Encoding
-interlace Line
// Output Image
thumb_112x65.jpg
私はあなたが次のようなものを探していると思います:
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
どこ 100x100
は、最終的な長方形のsizeであり、50x50
オフセット。
このコマンドは、正方形にトリミングしてから、150x150にサイズ変更します
convert 824-full.jpg -set option:size '%[fx:min(w,h)]x%[fx:min(w,h)]' xc:none +swap -gravity center -composite -resize 150x150 temp.jpg
その他のオプションはこちらから入手できます: http://www.imagemagick.org/Usage/thumbnails/#square