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-load。 infile、outfileが引数。 2行目から5行目までが変数(img, layer)の設定。3行目が画像の読み込み、4行目がレイヤーの読み込み。 car関数はリストの頭を返すらしい。 6行目がJPEG形式の画像保存。
参考にしたのは以下のページ。日本語のページは少なく、貴重。ありがとう・・・
Discretized Spiritualities: Gimpのfile-jpeg-saveのパラメータ
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$
成功。
JPEGファイル
なんか、こうやって並べると大分色が変わってるね…
5行目と6行目の間に
(gimp-threshold layer 215 255)
しきい値を設定する行を入れたら、何故か白黒で出力された。最低のしきい値を255にしても同じ。何なんだろう…
これでコマンドラインで実行できる準備ができた。かな?・・・