GraphicsMagick に画像を指定の幅にサイズ変更させる

GraphicsMagick に画像を指定の幅にサイズ変更させる

私は GraphicsMagick を使用して、画像のフォルダーを均一な幅にバッチ処理しています (ただし、ImageMagick にも同じことが当てはまると思います)。

$ gm convert -resize 1000x in.jpg out.jpg

しかし、いくつかの画像を調べてみると、999pxではなく が表示されます1000px

$ gm identify -verbose out.jpg

==> Image: out.jpg
==> Format: JPEG (Joint Photographic Experts Group JFIF format
==>   Geometry: 999x591

適切な幅を強制する方法はありますか? アスペクト比を維持するために何らかの推定を行っているものと思われます。

答え1

これを理解したら、感嘆符を使用して選択したサイズを強制します。GraphicsMagick ドキュメント:

ジオメトリに感嘆符を追加すると、画像のサイズが指定したサイズに厳密に設定されます。たとえば、640x480! と指定すると、画像の幅は 640 ピクセル、高さは 480 ピクセルに設定されます。

したがって、上記の例では次のようになります。

$ gm convert -resize 1000x! in.jpg out.jpg

これにより、ちょうど 1000 ピクセル幅の画像が生成されます。

$ gm identify -verbose out.jpg

==> Image: out.jpg
==> Format: JPEG (Joint Photographic Experts Group JFIF format
==>   Geometry: 1000x591

関連情報