2005/01/27(木) [n年前の日記]
#7 [cg_tools][prog] Gimp-RubyもGimp-Pythonも導入を諦めた
Linux版ならスンナリ入るのかもしれんけど、Windows版はわけがわかりません。諦めました。
自分がやりたいことは、複数ファイルに対して Script-fu スクリプトを適用するという処理でしかないので、他の方法でもどうにかなるだろうし。
自分がやりたいことは、複数ファイルに対して Script-fu スクリプトを適用するという処理でしかないので、他の方法でもどうにかなるだろうし。
◎ ということでActivePerlのスクリプトを作成して対応 :
Perlスクリプトで、複数ファイルに対して処理をする Script-fu スクリプトを自動生成する、みたいな感じで対処。たいしたことはしてませんが、
*1
バックアップも兼ねて一応アップ。ちなみに、GIMP 1.2.5 でしか動作確認してません。
_複数ファイルに対して処理をする Script-fu スクリプト、を生成するPerlスクリプト(.txt)。 *2
一応、使い方についても、メモ。
DLして、make_gimp_runall.pl にリネームして。perlが入ってる環境で、DOS窓を開いて、
この出力結果をファイル保存したいときは、例えば、
これで、GIMPを起動すれば、ツールボックス(?)の、Script-fu メニューの中に項目が増えてるはず。たぶん。
この Perl スクリプトですが、対象の拡張子や、呼び出す Script-fu スクリプト名等、引数を渡すだけで変更できるようにはしていたり。
_複数ファイルに対して処理をする Script-fu スクリプト、を生成するPerlスクリプト(.txt)。 *2
一応、使い方についても、メモ。
DLして、make_gimp_runall.pl にリネームして。perlが入ってる環境で、DOS窓を開いて、
perl make_gimp_runall.plあるいは、
perl make_gimp_runall.pl 指定したいディレクトリ名と打てば、 _gimpでバッチ処理 のソレとほぼ同じ、以下のような、Script-fu スクリプトが出力される。
(define (my-run-all) (png2xcf "h:/temp/01.png" "h:/temp/01.xcf") (png2xcf "h:/temp/02.png" "h:/temp/02.xcf") (png2xcf "h:/temp/03.png" "h:/temp/03.xcf") ) (script-fu-register "my-run-all" _"<Toolbox>/Xtns/Script-Fu/Utils/my-run-all..." "Converts all png to xcf" "yourname" "yourname" "2005/01/28 04:43:09" "" )
この出力結果をファイル保存したいときは、例えば、
perl make_gimp_runall.pl "x:\xxxx\xxxx" > run_all.scmといった感じで打つ。これで、run_all.scm に出力結果が保存されるので、run_all.scm を 〜\.gimp-1.2\scripts\ 以下にコピーする。あるいは直接、
perl make_gimp_runall.pl "x:\xxxx\xxxx" > 〜\.gimp-1.2\scripts\run_all.scmでもOK。長くて一々打ち込むのが面倒ならバッチファイルにしてもOK。 *3
これで、GIMPを起動すれば、ツールボックス(?)の、Script-fu メニューの中に項目が増えてるはず。たぶん。
この Perl スクリプトですが、対象の拡張子や、呼び出す Script-fu スクリプト名等、引数を渡すだけで変更できるようにはしていたり。
perl make_gimp_runall.pl --helpと打てば、
usage : perl make_gimp_runall.pl [directory] [ie=xxx] [oe=xxx] [sc=xxx] [osc=xxx] [gq] [user=xxx] [-h] [--help] directory ディレクトリを指定 ie=xxx 変換前の拡張子 (default ie=png) oe=xxx 変換後の拡張子 (default oe=xcf) sc=xxx 各ファイルに用いるスクリプト名 (default png2xcf) osc=xxx 出力スクリプトにつける名前 (default my-run-all) gq (gimp-quit 0) を含ませる user=xxx 利用者名 -h , --help このヘルプを表示こんな感じで説明が表示されます。もちろん、引数を渡すなんて面倒なことをせず、perlスクリプトの中身を直接書き換えてしまってもOK。最初のあたりでデフォルト値を変数に格納してるので、変更しやすい、はず。たぶん。
◎ 問題が :
目的は果たせたのだけど、GIMPのレイヤーダイアログの横幅が妙に広くなってしまった。どうやら、階層の深いところのファイルを変換するとそうなるっぽい。
*4
ということで、どこか階層の浅い場所で作業するか、もしくは、ディレクトリを指定しなくてもアクセスできるような場所 *5 に画像を入れて、出力されるスクリプトの内容を若干修正する等したほうがいいのかも。
ということで、どこか階層の浅い場所で作業するか、もしくは、ディレクトリを指定しなくてもアクセスできるような場所 *5 に画像を入れて、出力されるスクリプトの内容を若干修正する等したほうがいいのかも。
◎ それにしても :
複数の画像ファイルを別フォーマットで保存する機能、GIMPに標準でついてないのかな。なんだか自分が見落としてるだけのような気もするんだけど。うーん。
Gimp-Ruby か Gimp-Python が Windows版GIMPで動かせればなぁ。GIMPから直接、ディレクトリと、処理する画像フォーマットを選択するだけで、変換できるスクリプトが作れそうな予感もあるのだけど。
Gimp-Ruby か Gimp-Python が Windows版GIMPで動かせればなぁ。GIMPから直接、ディレクトリと、処理する画像フォーマットを選択するだけで、変換できるスクリプトが作れそうな予感もあるのだけど。
*1: Perlに慣れてるから、それでやっちゃったけど。なんとなく、WSHあたりでも、いやひょっとするとバッチファイルでもできそうな気がする。
*2: 日付が変なのは、深夜に作ってたからです。
*3: 〜\.gimp-1.2\scripts\ がどこにあるかは、それぞれの環境によって違うでしょうから、自分で探してください。
*4: 階層が深いと、パスが長くなってしまう → レイヤーダイアログの上のほうにパスが表示されていて、かつ、Gimpで読み込んだファイルの履歴がレイヤーダイアログには残る → 長いパスを表示できるように、ダイアログが横幅を確保する → 横幅が妙に広いままになる。のではないかと。
*5: 例えば、Gimpのインストールフォルダ下の、images フォルダの下とか。
*2: 日付が変なのは、深夜に作ってたからです。
*3: 〜\.gimp-1.2\scripts\ がどこにあるかは、それぞれの環境によって違うでしょうから、自分で探してください。
*4: 階層が深いと、パスが長くなってしまう → レイヤーダイアログの上のほうにパスが表示されていて、かつ、Gimpで読み込んだファイルの履歴がレイヤーダイアログには残る → 長いパスを表示できるように、ダイアログが横幅を確保する → 横幅が妙に広いままになる。のではないかと。
*5: 例えば、Gimpのインストールフォルダ下の、images フォルダの下とか。
[ ツッコむ ]
以上です。