有馬総一郎のブログ

(彼氏の事情)

GIMPを使って、PNG形式の画像ファイルをJPEG形式の画像ファイルに変換する

Ubuntu 13.10

コマンドラインでPNG形式の画像ファイルをJPEG形式の画像に変換する方法をググった。画像編集ツールGIMPを使ってやるのが、良さそうだ。GIMPには Script-Fuというマクロが用意されている。初めは、慣れないその記述法に心が挫けそうになったが、なんとか書き上げた。

script-conv-jpeg.scm

(define (script-conv-jpeg infile outfile)
  (let* (
         (img (car (gimp-file-load 1 infile infile)))
         (layer (car (gimp-image-active-drawable img)))
        )
  (file-jpeg-save 1 img layer outfile outfile 1.00 0.00 1 0 "" 0 1 0 0)
  )
)

1行目が関数名と引数の設定。関数が script-file-loadinfile、outfileが引数。 2行目から5行目までが変数(img, layer)の設定。3行目が画像の読み込み、4行目がレイヤーの読み込み。 car関数はリストの頭を返すらしい。 6行目がJPEG形式の画像保存。

参考にしたのは以下のページ。日本語のページは少なく、貴重。ありがとう・・・

2. Script-Fu スクリプトを使用

おれおれ Script-Fu 入門

Discretized Spiritualities: Gimpのfile-jpeg-saveのパラメータ

Some GIMP Scripts-Fu

arimasou16@Desktop:~/Pictures$ gimp-2.8 -i -b "(script-conv-jpeg \"/home/arimasou16/Pictures/475013.png\" \"folder.jpg\")" -b "(gimp-quit 1)"
batch command experienced an execution error:
Error: ( : 1) eval: unbound variable: script-conv-jpeg 

scmファイルをscriptsディレクトリに移動せずに実行すると、こういう間抜けなエラーメッセージが出る。

arimasou16@Desktop:~/Pictures$ gimp-2.8 -i -b "(script-conv-jpeg \"/home/arimasou16/Pictures/475013.png\" \"folder.jpg\")" -b "(gimp-quit 1)"
batch command executed successfully
arimasou16@Desktop:~/Pictures$ 

成功。

PNGファイル
475013.png

JPEGファイル
folder.jpg なんか、こうやって並べると大分色が変わってるね…

5行目と6行目の間に

(gimp-threshold layer 215 255)

しきい値を設定する行を入れたら、何故か白黒で出力された。最低のしきい値を255にしても同じ。何なんだろう…

最低しきい値215
215

最低しきい値255
255

これでコマンドラインで実行できる準備ができた。かな?・・・

Comments