2005/01/25(火) [n年前の日記]
#1 [cg_tools][prog] GIMPのScript-fuを勉強(?)中
WinXP Home SP2 + GIMP で勉強中。最終的にやりたいことは、連番pngを連番xcfで保存しなおすこと。
GIMP 2.2.1上では、DB Browserはどこに。プロシージャブラウザってのがそれかしら。
別ドライブにあるファイルを変換する場合は、
なんだ。Windows版でも、batch mode が使えるのだな。良かったー。
さて、あとは複数ファイルをどうやって次々に渡すかだな。…そもそも Script-fu で、指定ディレクトリ内のファイル一覧を取得 → 特定拡張子のファイルのみ抽出、とかできないものだろうか。うーむ。
GIMP 2.2.1上では、DB Browserはどこに。プロシージャブラウザってのがそれかしら。
◎ 検索が使えなくて戸惑う :
最初、プロシージャブラウザ上で検索しようと入力欄をクリックしても、フォーカスが移らなかった。キーを打ち込んでみても反映されず。…アプリケーション切替をしていたら、そのうち件の入力欄にフォーカスが移った。どういう条件でフォーカスが移らなくなるのか、謎。でもまあ検索できてるみたいだから、いいか。
◎ file-xcf-saveが無い :
_gimp でバッチ処理
のページを見ながら、「file-gif-save を file-xcf-save にすれば済むかな」と単純に思ったけど。プロシージャブラウザを眺めてみたら、file-xcf-save が無い。GIMPのくせにGIMP専用フォーマット xcf を扱う関数(?)が存在してないのか。むぅ。と困惑していたら gimp-xcf-save というのがあった。これかしら。
gimp-file-save ってのもあるらしい。これでもいいのかな。おそらく、拡張子で自動判別して保存してくれるのだろうと勝手な想像。
gimp-file-save ってのもあるらしい。これでもいいのかな。おそらく、拡張子で自動判別して保存してくれるのだろうと勝手な想像。
◎ メニューに表示されない :
.scmを作成して、~/.gimp-1.2/scripts/ に放り込んでみたけど、Script-fu のメニューに表示されない。GIMP 1.x と 2.x で仕様が変わったのかしら。
_こちら で触れられていた。1.2.x の頃から違ってるらしい。
_こちら で触れられていた。1.2.x の頃から違ってるらしい。
_"<Toolbox>/Xtns/Script-Fu/Logos/3D Outline..."といった感じで書くみたい。<Toolbox> 以外にも色々ある模様。
◎ 上手くいかない :
エラーが出るなぁ。 GIMP 2.2.1 は何か違うのだろうか。GIMP 1.2.5 で動作確認することにした。
◎ 原因判明 :
(define (png2xcf inFile outFile) と書くところを、コピペしたまま (define (pbm2gif inFile outFile) と書いてたらしい。これで丸一日ハマってた自分。アホ過ぎ… (;TДT)
◎ こんな感じかな :
png を xcf で保存するスクリプト。
(define (png2xcf inFile outFile) (set! img (car (gimp-file-load 0 inFile inFile))) (set! drawable (car (gimp-image-active-drawable img))) ; (gimp-display-new img) ; (gimp-displays-flush) (gimp-file-save 1 img drawable outFile outFile) ; (gimp-quit 0) ) (script-fu-register "png2xcf" _"<Toolbox>/Xtns/Script-Fu/Utils/png2xcf..." "Converts a png file to xcf" "mieki256" "mieki256" "2005 01 26" "" SF-VALUE "Infile" "\"01.png\"" SF-VALUE "Outfile" "\"01.xcf\"" )このくらいは標準でありそうな気もするんだけどな…。コマンドライン指定で機能があったりしないのかしら。
◎ _Gimp起動コマンド :
_Gimpの起動フラグとrcファイル
windows の場合、
windows の場合、
start gimp --helpと打ち込まないと起動コマンド一覧が出てこないらしい。それと、非Windows版の -n が、Windows版は -i になってるように見える。
◎ batch modeで上記スクリプトを指定するとエラーがでる :
GIMPのメニュー上から呼び出すとエラーは出ないけど。batch modeで使おうとして、
「"」の書き方がマズイのかと思って、
start gimp -i -b '(png2xcf "01.png" "01.xcf")' '(gimp-quit 0)'と打つと、エラーが出る…。
batch command: experienced an execution error. batch command: experienced an execution error. batch command: experienced an execution error. batch command: experienced an execution error. batch command: executed successfully.こんな感じのエラー。それに、処理が終了しない。新たに開いたDOS窓を閉じると、「gimp.exe -- アプリケーションエラー」みたいな例外ナントカが出て不正終了。タスクマネージャで見ると、script-fu.exe が残ってる。うーむ。
「"」の書き方がマズイのかと思って、
start gimp -i -b '(png2xcf "\"01.png\"" "\"01.xcf\"")' '(gimp-quit 0)'とか、
start gimp -i -b '(png2xcf \"01.png\" \"01.xcf\")' '(gimp-quit 0)'とか打ってみた。…エラーメッセージが変わるな。でも、エラーは出たまま。
◎ Windows版はバッチモード自体が使えないのだろうか :
_GIMP Batch Mode
のページに書いてあるとおりに打ってみてもエラーが出るし。
_ココ や _ココ を見ると、Windows版では batch mode は使えない香りがしてきた。 *1 …やっぱりLinuxが必要なのかなぁ。
_ココ や _ココ を見ると、Windows版では batch mode は使えない香りがしてきた。 *1 …やっぱりLinuxが必要なのかなぁ。
◎ 関係ないけど :
英語圏のMLを眺めてたら、「GIMP の batch mode が上手く動かないよ〜」→「その程度の処理ならImagemagick使えよ。このバカ」みたいな流れがパターン化してる気がしてきた。…Imagemagickがxcfの書き出しに対応していれば、自分もそっちでやるんだけどな。誰が好き好んで GIMP の batch mode なんかに手を出すもんか。つーかどうして xcf 書き出しに対応してるツールがGIMP以外に無いのだらう。むぅ。
◎ むむ? 動いた? :
start gimp -i -b "(png2xcf \"01.png\" \"01.xcf\")" "(gimp-quit 0)"エラーメッセージが出ないし、新しくDOS窓も開かないし、プロセスも残らない。「'」は「"」に、「"」は「\"」にすればいいのか…な? 自信ないけど。 *2
別ドライブにあるファイルを変換する場合は、
start gimp -i -b "(png2xcf \"h:\\01.png\" \"h:\\01.xcf\")" "(gimp-quit 0)"こんな感じでイケるみたい。「\」は「\\」にする、のかな? また、 _『Script-Fu で 画像形式変換のバッチ処理』 にあるように、スクリプト中に (gimp-quit 0) を入れておけば、
start gimp -i -b "(png2xcf \"h:\\01.png\" \"h:\\01.xcf\")"これだけでもイケる、ように見える。その代わり、GIMP のメニュー中から呼び出すと、GIMP自体が終了してしまうけど。
なんだ。Windows版でも、batch mode が使えるのだな。良かったー。
さて、あとは複数ファイルをどうやって次々に渡すかだな。…そもそも Script-fu で、指定ディレクトリ内のファイル一覧を取得 → 特定拡張子のファイルのみ抽出、とかできないものだろうか。うーむ。
[ ツッコむ ]
以上です。