ターミナルから画像のサイズを変更するにはどうすればいいですか?

ターミナルから画像のサイズを変更するにはどうすればいいですか?

私はUbuntu 10.04を使用しています。次のコマンドを使用して、ターミナルからイメージを変換しました。

convert myfigure.png myfigure.jpg

しかし、変換された画像の高さと幅のサイズを変更したいのですが、これを行う方法はありますか?

答え1

同じコマンドですが、オプションが追加されています:

convert myfigure.png -resize 200x100 myfigure.jpg

または

convert -resize 50% myfigure.png myfigure.jpg

複数のファイルのサイズを変更するには、次のコマンドを試してください(@テスト30

find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}"

答え2

CLI のみが必要な場合:

sudo apt-get install imagemagick
mogrify -resize 320x240 Image.png 
mogrify -resize 50% Image.png
mogrify -resize 320x240 *.jpg

GUIを試してみたい場合:

インストールnautilus-image-converter

sudo apt-get install nautilus-image-converter

Nautlius に 2 つのコンテキスト メニュー項目が追加され、右クリックして「画像のサイズ変更」を選択できるようになります (もう 1 つは「画像の回転」です)。

必要に応じて、画像のディレクトリ全体を一度に実行することができ、そのためにアプリケーションを開く必要さえありません。

答え3

画像は、画像のサイズ変更と回転を行う比較的新しいユーティリティです。nautilus-image-converter よりも多くの機能を備えています。

例えば:

imgp -x 1366x768 *

答え4

UbuntuにはPythonが付属しているので、Pythonスクリプトを使用して、もう少し制御しながらこれを実現することもできます。このスタックオーバーフローサンプル スクリプトに関する質問です。これらの例では標準ライブラリのみを使用します。

スクリプト #1

import os, sys
import Image

size = 128, 128

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.ANTIALIAS)
            im.save(outfile, "JPEG")
        except IOError:
            print "cannot create thumbnail for '%s'" % infile

幅のみを指定する必要がある別の例 (width 変数として) は次のとおりです。

スクリプト #2

from PIL import Image
import sys

filename = sys.argv[1:]
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save(filename) 

さて、ターミナルからこれをどうやって行うか...

sudo nano resizescript.py

これらのコード ブロックの 1 つをテキスト エディターに貼り付けます。Ctrl+x を押して終了します (変更を保存するには [はい] を押します)。

スクリプト #1 を使用するには:

python resizescript.py yourfilenamehere.jpg

スクリプト #2 を使用するには:

python resizescript.py yourfilenamehere.jpg

これら 2 つのスクリプトを実行するには、画像ファイルと同じディレクトリにいる必要があります。最初のスクリプトは、画像を 128 x 128 ピクセルに縮小します。2 番目のスクリプトは、画像を 300 ピクセルの幅にし、比例した高さを計算します。これは Python による回答ですが、技術的にはすべてターミナルを通じて実行されます。

関連情報