>> 古い記事: 雑メモ: 2007-06a
<< 新しい記事: Script-Fu: レイヤー内にあるものを画像の中央に移動させる

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Script-Fu: 関数メモ

メモ。 誤記誤訳があると思いますので正確な情報を知りたい場合は プロシージャブラウザなどを利用してください。

gimp-drawable-mask-bounds

引数 DRAWABLE 返り値 INT32 選択領域があれば TRUE 残りは x1 y1 x2 y2

編集

gimp-edit-paste

引数 DRAWABLE 貼り付け先 INT32 選択領域解除。もしくは背後に貼る 返り値 LAYER 新しいフローティング選択領域

切り取り: gimp-edit-cut

コピー: gimp-edit-copy

貼り付け: gimp-edit-paste

消去: gimp-edit-clear

描画色/背景色で塗りつぶす: gimp-edit-fill

選択領域をストローク描画: gimp-edit-stroke

パスをストローク描画: gimp-path-stroke-current

選択

gimp-floating-sel-to-layer

引数 LAYER フローティング選択領域 返り値なし

gimp-selection-layer-alpha

アルファチャンネルを選択領域に 引数 LAYER 返り値なし

画像

gimp-image-delete

引数 IMAGE 対象とする image と関連付けられているディスプレイがなければ image を消去できる。 つまり、ユーザによって作られたPDB経由では消去できない。

gimp-image-add-hguide

gimp-image-add-vguide

gimp-image-delete-guide

新規ガイド
script-fu-guide-new

新規ガイド(パーセントで)
script-fu-guide-new-percent

引数 IMAGE DRAWABLE INT32 0:横, 1:縦 FLOAT パーセント。左端、または上端が基準。 ※ Win版 v2.2.13 で確認。 プロシージャブラウザの記述が間違ってる?

レイヤー

gimp-layer-copy

別の image にはペーストできない。

gimp-layer-resize-to-image-size

レイヤーを画像サイズに合わせる 引数 LAYER 返り値なし

アルファチャンネルを削除: gimp-layer-flatten

下のレイヤーと結合: gimp-image-merge-down

gimp-image-add-layer

← position: 0 [レイヤー1] ← position: 1 [レイヤー2] ← position: 2 [レイヤー3] ← position: 3 ... position == -1 でアクティブなレイヤーのすぐ上。 追加したレイヤーがアクティブになる。

gimp-layer-copy

コピーしたら gimp-image-add-layer でレイヤースタックに追加する。

文字列


(make-string 4)     ;=> "    "
(make-string 4 #\a) ;=> "aaaa"

(string #\a #\b) ;=> "ab"

(string-length "abcde")      ;=> 5
(string-length "あいうえお") ;=> 5

(string-ref "foobar" 0) ;=> #\f
(string-ref "foobar" 1) ;=> #\o
(string-ref "foobar" 3) ;=> #\b

(define foo (string #\F #\O #\O))
(string-set! foo 2 #\X)
foo ;=> "FOX"
;; mutable な文字列でないといけないらしい
(string-set! (string-copy "FOO") 2 #\X) ;=> "FOX"

(string=? "foo" "foo") ;=> #t
(string=? "foo" "bar") ;=> #f
;; 大文字・小文字を無視した比較は string-ci=?

(string #t
(string #f
;; 比較用関数が他にもいろいろある

(substring "foobar" 2 4) ;=> "ob"

(string-append "a" "b") ;=> "ab"

(define a "foo")
(define b (string-copy a))
(string=? a b) ;=> #t
(equal? a b)   ;=> #t
(eq? a b)      ;=> #f

(string-fill! (make-string 3) #\X) ;=> "XXX"
(string-fill! "foo" #\X) ;=> Error: string-set!: unable to alter immutable string: "foo" 

;; Ruby の join みたいなの
(unbreakupstr '("a" "b" "c") "-") ;=> "a-b-c"

型の変換

char->integer
exact->inexact
inexact->exact
integer->char
list->string
list->vector
number->string
string->list
string->number
string->symbol
symbol->string
vector->list

表示関連

print

いわゆる REPL の P。

> (print 123)
123 ;;=> 表示された値
#t  ;;=> (print 123) の値
> (print '(1 2))
(1 2)
#t
> (print '(1 . 2))
(1 . 2)
#t
> (print #(1 2))
#( 1 2 )
#t
> (print #\a)
#\a
#t
> (print "abc")
"abc"
#t

display

改行が付かない。文字列がダブルクォートで囲まれない。

> (display 123)
123#t
> (display '(1 2))
(1 2)#t
> (display #(1 2))
#( 1 2 )#t
> (display #\a)
a#t
> (display "abc")
abc#t

gimp-message

文字列以外を渡すとエラーになる。 エラーコンソールに表示される。

その他

gimp-image-undo-disable / gimp-image-undo-enable
と
gimp-image-undo-freeze / gimp-image-undo-thaw
の違い:

disable/enable だと(~-disableした時点で)アンドゥスタックが空になる。
  enable でアンドゥスタックが使えるようになる。
freeze/thaw だとアンドゥスタックは空にならない。
  thaw で(freeze 時点の続きから)アンドゥスタックが使えるようになる。

;; ● image の幅と高さを取得
(car (gimp-image-width  img) )
(car (gimp-image-height img) )


;; ● リストから n 番目を取り出す

;; リストから 1つ目を取り出す
(car list)
;; 2つ目
(car (cdr list) )
;; 3つ目
(car (cdr (cdr list)) )

;; …… というように car と cdr を使っても良いが、nth を使うと楽
(nth 0 '("a" "b" "c")) ;=> "a"
(nth 2 '("a" "b" "c")) ;=> "c"


;; let* と let の違い
(let* ((a 1) (b (+ a 2))) ;; b の定義で a が使える
  (* a b))
;=> 3 
(let ((a 1) (b (+ a 2))) ;; b の定義で a が使えない
  (* a b))
;=> Error: eval: unbound variable: a 

関連記事

参考(外部リンク)


Gimp 関連記事のもくじ

>> 古い記事: 雑メモ: 2007-06a
<< 新しい記事: Script-Fu: レイヤー内にあるものを画像の中央に移動させる
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。