mieki256's diary



2014/07/14(月) [n年前の日記]

#2 [prog][cg_tools] gimp-shell.el等が気になる

Script-fu を書くなら、gimp-shell.el や script-fu-shell.rb を使えたほうがいいのかなと思えてきたり。ただ、導入の仕方が…。Windows上で動くかどうかも不明だし。

_gimp-shell.el / gimp-mode を使ってみた | anobota
_Emacs で Script-Fu を書いて実行させる / script-fu-shell.rb | anobota
_pft/gimpmode - GitHub

script-fu-shell.rb を試してみた。 :

_Emacs で Script-Fu を書いて実行させる / script-fu-shell.rb | anobota を参考にして動作確認を試みたり。

環境は、Windows7 + GIMP 2.8.10 Portable + Ruby 1.9.3 p545 mingw32版。

結果を先に書いておくと、動きそうだけど微妙に動かなかった。

試した手順をメモ。 _sonota/script-fu-shell - GitHub から一式をDL。解凍。

  1. script-fu-shell-init.scm を GIMP 2.8.10 Portable に追加。
  2. GIMPを起動
  3. Script-fu → Script-fu → サーバスタート
  4. ruby script-fu-shell.rb を実行。
  5. (gimp-display-new (car (gimp-image-new 640 480 0))) と打つ。
これで、GIMP上で新規画像が作成されるはずなのだが…。

まず、以下のエラーメッセージが出てくる。
script-fu-shell.rb:190:in `run': undefined local variable or method `line' for #<ScriptFuShell:0x21128d0> (NameError)
        from script-fu-shell.rb:264:in `<main>'
script-fu-shell.rb の 190行目に、
      Readline::HISTORY.pop if dup_or_blank?(line)
と記述があるが、line なんて変数は定義されてない。オリジナルソースは、作者の手元で動いていたのだろうか…。何故動いていたのだろう…。

とりあえず192行目に、
      line = prepare_line(raw_line)
という記述があるので、190行目を、その下に移動してみた。

再度試してみたけれど。
> (gimp-display-new (car (gimp-image-new 640 480 0)))
=> Error: (<unknown> : 61562155) eval: unbound variable: item->string
「item->string なんて知らねえよ」と文句を言われてしまった。

item->string は、script-fu-shell-init.scm 内で定義されてる。Script-fuサーバが返してきた値について、コンソールに出力するために文字列へと変換する処理を担当しているのだと思う。script-fu-shell-init.scm をGIMPに追加したはずなので、item->string が使えそうな気がするのだけど、反映されてないのだろう。どうやって反映させたらいいのか分からない。

136行目に、
    send_raw %Q{(item->string #{script.strip})}
という記述があったので、試しに、
    send_raw %Q{(#{script.strip})}
と書き換えてみたが、一応コマンド?は送られて新規画像が作成されるものの、
> (gimp-display-new (car (gimp-image-new 640 480 0)))
=> Error: (<unknown> : 83411614) illegal function
と表示されてしまう。(1) というリストが返ってきてるけど、DOS窓に表示しようもなくてエラーになっているのかなと。

やはり item->string を Script-fu に認識させないといかんらしい。もしくは Rubyスクリプト側で、リスト値その他を判別して文字列に変換する処理ができれば…。そんなことができるのかわからんけど。

GIMP の Script-fu のマズイ点は、動作確認がやりづらい点だと思うわけで。そこらへんをどうにかできないものかと…。

以上です。

過去ログ表示

Prev - 2014/07 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project