GIMP2.10でScript-Fuを試してみる。頭の中をやりたいことでいっぱいにする。欲しい物リストGIMP2.10でScript-Fuを試してみる。2020.10.04GIMP内で実行できるスクリプトは2種類あり一つはPython-Fu(Python)もう一つはScript-Fu(Scheme)です。プラグインとしてインストールしたフィルターがScript-Fuで書かれており、そのフィルターを実行するマクロ的なスクリプトを組むためScript-Fuを試してみたいと思います。Script-Fuで実行するスクリプトはSchemeというスクリプト言語ですが、私は学習経験がありません。オープンソースのアプリケーションの組み込み言語として採用されるらしいので少しぐらいは使えるようになりたいと思います。10のようなスタイルではなかったと思います。マクロ作成という比較的軽い目的で、0から言語学習をするのは、なかなかしんどいので基礎を飛ばして即実践してみたいとおもいます。Script-Fuの対話式コンソールを立ち上げて試して行きます。基本的にGIMPでスクリプトを組むとするとimageオブジェクトが無いと始まらないので、画像の一覧を取得します。(gimp-image-list)()よくあるプログラミング言語で言うところの改行や;に相当します。ブロックの役割もするそうです。()だらけのスクリプトが出来上がります。画像を1つ開いている状態での実行結果は以下のような結果になります。#(1))うん、意味が分からない。Python-Fuで試した際この関数は開いている画像のimageオブジェクトの配列を返してくれたようなきがしましたが...プロシージャブラウザでgimp-image-listを引いてみたいと思います。of...やはり戻り値が2つあるようです。英語の説明を類推するとimage-idsが配列なのでこちらがimageの配列だと思われます。この2つある戻り値うち後者を取り出すにはどうしたらよいでしょう。(gimp-image-list))>(#(1))これで目的の配列を取得できました。ちなみに一つ目を取り出すには。(gimp-image-list))>1こちらには結果に()が無い状態ですので、直接値を表していると思われます。(gimp-image-list))>(#(1))こちらの#(1)は多分、配列を表しているとすると外側の()が余分です。(gimp-image-list)))>#(1)先ほど使ったcarで()が外れました。次に取り出した配列の最初の要素を取り出します。0)>1右側の0がインデックスになります。ここまで実行してみて結果が数値の1に見えます。imageオブジェクトのID番号か何かとは思いますが、今のところ考えないことにします。目的のimageオブジェクトが取得できたと思いますので、変数に格納しておきます。0))imgdefineで宣言し初期化していることになります。コンソールで別なコードを実行する際、引数として利用できましたのでグローバル変数だと思われます。イメージオブジェクトからアクティブなレイヤーを取得imageの次はlayerを取得します。GIMPの関数群はこの二つを引数に取るものが多いので、この2つを抑えておけば色々なことが出来るようになります。img)>(2)gimp-image-get-active-layerに先ほど取得したimageオブジェクトのimgを引数に渡します。戻り値が数値に見えますが、多分これがlayerオブジェクトなのでしょう。こちらも結果が()に包まれていますのでcarで外してあげます。img))>2先ほどと同様に変数に格納します。img)))layer塗りつぶしimageとlayerが取得できたので画像を黒(前景色)で塗りつぶしてみたいと思います。プロシージャブラウザで塗りつぶしなのでfillを検索いくつか候補が出ますが、gimp-edit-fillを試してみたいと思います。引数の1番目はdrawableをセットするそうなのですが、よくわからないですがlayerをセットしてみます。2番目は塗りつぶしの種類らしく0が前景色を1が背景色のようなので、とりあえず0をセットします。0)>(#t)見慣れない結果ですが、エラーではないようです。(#t)のtがtrueのtであることを期待して画像を見てみます。前景色の黒で塗りつぶされています。最後に今回のところはこんな感じで終わりにします。試行錯誤しましたが、結果は以下の3行になります。0)やっぱり()だらけの暗号のように見えます。見つかりませんでした。スポンサーリンクC#ビットマップのPixelFormatをFormat32bppArgbに変換する。Googleで検索ワードをダブルクォーテーションで囲むと完全一致検索になるコメントコメントを書き込む私は日本語以外の言語を理解できません。日本語以外のコメントはスパムとみなされます。コメントをキャンセルメールアドレスが公開されることはありません。このサイトの使用を継続することで、その使用に同意したとみなされます。コントロール方法を含む詳細についてはこちらをご覧ください。迷惑堂本舗.ホームプロフィールプライバシーポリシー(個人情報保護方針)。