3

GIMPスクリプトでの文字列から数値への変換と数値から文字列への変換に不満を感じています。私はWindowsVistaでGIMP2.6.8を実行しています。

GIMPの内部Scheme実装がバージョンによって変更されていることを理解しており、ドキュメントを特定できないようです。私が収集できるものから、GIMPのスキームはTinySchemeのサブセットであり、および/またはR5RS標準手順をサポートします。いずれにせよ、私は通常、何か新しいことを試したいときに、パッケージ化されたスクリプトディレクトリで例を探すだけです。それは確かに機能するはずだからですよね?

たとえば、grid-system.scmには最新のGIMPリリースが付属しており、次の式があります。

(string-append (number->string obj) " ")

それはまさに私が欲しいものです。ただし、自分のスクリプトでnumber-> stringを使用する場合、またはGIMPのスクリプトコンソールに入力する場合(これは、通常、やりたい新しいことをテストする方法です)、number->stringはバインドされていない変数であると表示されます。

> (number->string 3)

Error: eval: unbound variable: number->string

R5RSなどの他の標準的な手順は、問題なく機能します。

> (string-append "frust" "rated")

"frustrated"

それで、

1)GIMPのソースコードを検索するような抜本的なもの以外に、現在のGIMPスキームスクリプトに関するいくつかの潜んでいるドキュメントはありますか?

2)GIMPコンソールを使用して、定義されているすべての手順のリストを吐き出し、必要なものを見つけることはできますか?

3)他の誰かが、パッケージ化されたスクリプトに表示されていても、現在のWindowsビルドにnumber-> stringが定義されていないことを確認しますか?私のWeb検索では、関連する問題は見つかりませんでした。すべてのGIMPバージョンを完全にアンインストールすると、最新の状態に戻り、同じ問題が発生します。

4

1 に答える 1

5

変数を再バインドし、Scheme で最上位の標準ライブラリ関数を monkeypatch することはできますが、最上位の変数をアンバインドすることはできないと思います。正しく読み込まれていないライブラリ ファイルがある可能性があります。

OS X 上の GIMP 2.6.8 の私の TinyScheme は、number->string を問題なく実行します。

number->string は share/gimp/2.0/scripts/script-fu.init で次のように定義されています

(define (number->string n) (anyatom->string n number?))

したがって、そのコードを実行して変数を再バインドできます。または、 script-fu.init をリロードすることもできます

于 2010-03-21T03:27:17.930 に答える