回答:
これは、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
でサイズ最終矩形とのオフセット。50x50
convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg
詳細情報については、Igancio Vazquezの回答を確認するか、ドキュメントを
このコマンドは正方形にトリミングしてから、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