|
Script-fu構文
入力ボックスの引数
SF-ADJUSTMENT | '(初期値 最小値 最大値 ステップ幅 ステップ幅 桁数(0なら整数) 種類(0または1)) |
SF-ADJUSTMENT例1 | '(24 2 100 1 10 0 1) |
SF-ADJUSTMENT例2 | '(0.01 0 1 0.01 0.01 2 0) |
SF-BRUSH | '("Circle (07)" 1.0 20 0) |
SF-STRING | "3D-FUN!" |
SF-FONT | "Sans Bold" |
SF-IMAGE | 0 |
SF-DRAWABLE | 0 |
SF-OPTION | '("White" "Black" "Pattern" "Gradient") |
SF-TOGGLE | FALSE |
SF-COLOR | '(153 153 153) |
SF-GRADIENT | "Incandescent" |
SF-PATTERN | "Blue Web" |
SF-VALUE | "15" |
SF-FILENAME | (string-append "" gimp-data-dir "/scripts/images/beavis.jpg") |
描画モード
レイヤーlayer-copyのモードをスクリーンにする
(gimp-layer-set-mode layer-copy SCREEN-MODE)
NORMAL-MODE MULTIPLY-MODE DIVIDE-MODE SCREEN-MODE OVERLAY-MODE
DIFFERENCE SOFTLIGHT-MODE HARDLIGHT-MODE(18) ADDITION-MODE SUBTRACT-MODE LIGHTEN-ONLY-MODE
DARKEN-ONLY-MODE COLOR-MODE VALUE-MODE |
|
標準 乗算 除算 スクリーン オーバーレイ 差分 ソフトライト ハードライト 加算 減算
比較(明) 比較(暗) 色 明度 |
値の設定
blurの値をheightを14で割った値とする
(set! blur (/ height 14))
beの値を0とする
(set! be 0)
※あらかじめ(let(・・・))の中に(blur 0)と記述しておくこと!(値は0以外でもよい)
depthの値に10を掛ける
(set! depth (* depth 10))
入力ボックスの選択について
SF-OPTION _"Blend Mode" '(_"mode1" _"mode2" _"mode3" _"mode4" _"mode5" _"mode6")
このように設定すると、入力ボックスでmode1からmode6までを選択できるようになる。ここで得た値は次のようにして
使う(modeoptionは変数、2行目と4行目は命令文)。
(cond ((= modeoption 0)
(gimp-layer-set-mode active-layer SCREEN-MODE))
((= modeoption 1)
(gimp-layer-set-mode active-layer OVERLAY-MODE))・・・)
レイヤー
対象レイヤーをコピーする
(layer-copy (car (gimp-layer-copy drawable TRUE)))
コピーしたレイヤーへのレイヤーマスクを作る
(layer-mask (car (gimp-layer-create-mask layer-copy WHITE-MASK)))
レイヤーを画像に追加
(gimp-image-add-layer img layer-copy -1)
レイヤーマスクを画像 (コピーしたレイヤー) に追加
(gimp-image-add-layer-mask img layer-copy layer-mask)
レイヤーにアルファチャンネルを追加
(gimp-layer-add-alpha layer1)
レイヤーを画像から削除
(gimp-image-remove-layer img layer1)
選択範囲を削除
(gimp-edit-clear layer1)
レイヤーをクリーニング
(gimp-edit-clear layer1)
レイヤーのイメージをコピーして保管しておく
(gimp-edit-copy layer-copy)
それをレイヤーマスクにペーストする
(gimp-floating-sel-anchor (car (gimp-edit-paste layer-mask 0)))
レイヤーマスクをレイヤーに適用する
(gimp-image-remove-layer-mask img layer-copy APPLY)
レイヤーlayer-copyの不透明度を変更する
(gimp-layer-set-opacity layer-copy 80)
レイヤーを非表示に設定する
(gimp-layer-set-visible layer FALSE) ←GIMP1.2
(gimp-drawable-set-visible layer FALSE) ←GIMP2.0以降
可視レイヤーの統合
(gimp-image-merge-visible-layers img 0)
(set! k1 (car (gimp-image-merge-visible-layers img 0)))
イメージ
画像imgの全領域を選択する
(gimp-selection-all img)
imgの選択領域を解除する
(gimp-selection-none img)
画像を更新する
(gimp-displays-flush)
新しい画像を表示する
(gimp-display-new img)
その他命令
アルファチャンネルを消去する
(gimp-image-remove-channel img active-selection)
threshold:閾値
(gimp-threshold a-layer 100 200)
while:一定命令の繰り返し
(while (< y height)
:
:
(set! y (+ y 1))
)
gimp-message:メッセージ
(gimp-message "Hello")
(gimp-message (number->string a))
グラデーション
(gimp-gradients-set-active gradient1)
(gimp-blend drawable CUSTOM paint-type gtype opacity 20 repeat(0-2) FALSE 0 0 x1 y1 x2 y2)
例:(gimp-blend text-layer CUSTOM NORMAL gradmd2 100 20 REPEAT-NONE FALSE 0 0 0 0 width 0)
fill:塗りつぶし
(gimp-edit-fill BG-layer BG-IMAGE-FILL)
(gimp-drawable-fill tmp-layer WHITE-IMAGE-FILL)
(gimp-bucket-fill background 0 COLOR 100 255 FALSE 0 0)
(gimp-edit-bucket-fill theLayer FG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
(gimp-file-save 1 img layer1 output input)
(gimp-quit 0)
変更点
- aset - TinySchemeの vector-set! で置き換え
- aref - TinySchemeの vector-ref で置き換え
- fopen - TinySchemeの open-input-file で置き換え
- mapcar - TinySchemeの map で置き換え
- nil - TinySchemeの '() で置き換え
- nreverse - TinySchemeの reverse で置き換え
- pow - TinySchemeの expt で置き換え
- prin1 - TinySchemeの write で置き換え
- print - TinySchemeの write (newlineに続けて) で置き換え
- strcat - TinySchemeの string-append で置き換え
- string-lessp - TinySchemeの string<? で置き換え
- symbol-bound? - TinySchemeの defined? で置き換え
- the-environment - TinySchemeの current-environment で置き換え
- *pi* - 定数 *pi* はTinySchemeにおいて定義済ではありませんが (* 4 (atan 1.0)) で定義することができます
- butlast - TinySchemeで使用することはできませんが別コード (reverse (cdr (reverse x))) が利用可能です
- cons-array - TinySchemeの make-vector で置き換え
- FG-IMAGE-FILL - FOREGROUND-FILL
- gimp-brushes-get-brush - gimp-context-get-brush
- gimp-palette-get-foreground - gimp-context-get-foreground
- 1.2では可能だった(gimp-image-add-layer img bg-layer 0)のまえに
レイヤーサイズを変えるなどすることは、2.0以降はできなくなっているので注意。
car, cdrなど
(set! color '(128 253 147))の時、
(car color) = 128
(caddr color) = 253
(cdr color) = (253 147)
例文
指定した色Colorで塗りつぶし、終わったらパレットを元通りの色にする
(let ((old-fg(car (gimp-palette-get-foreground))))
(gimp-palette-set-foreground Color)
(gimp-edit-fill layer-copy 0)
(gimp-selection-none img)
(gimp-palette-set-foreground old-fg))
前景色の設定
(gimp-palette-set-foreground tcolor)
(gimp-layer-set-preserve-trans text-layer TRUE)
(gimp-edit-fill text-layer FG-IMAGE-FILL)
(cond((= foption 1)
(gimp-gradients-set-active grad) ;グラデーションの設定
(gimp-layer-set-preserve-trans text-layer TRUE) ;透明部分を保護
(gimp-blend text-layer CUSTOM NORMAL gmode 100 20 REPEAT-NONE FALSE 0 0 0 0 width height)
)
((= foption 2)
(gimp-selection-layer-alpha text-layer)
(gimp-patterns-set-pattern pat)
(gimp-bucket-fill text-layer PATTERN-BUCKET-FILL NORMAL 100 255 FALSE 0 0)
(gimp-selection-none img) ;領域を選択しないとテクスチャで塗りつぶすことはできない
))
画像の大きさを変更する
(gimp-image-resize img width height xoffset yoffset)
(gimp-layer-resize text-layer width height xoffset yoffset)
blurの値をsizeの1/10とし、画像imgのレイヤーlayerにガウシアン暈しをかける
(let(
(blur (/ size 10)))
(plug-in-gauss-iir2 1 img layer blur blur))
元の画像を残す
imgは元の画像、hznimgは元の画像を保存するものである
(define (script-fu-ファイル名 img・・・)
(set! hznimg (car (gimp-channel-ops-duplicate img)))
(let* (・・・
(gimp-image-clean-all hznimg)
(gimp-display-new hznimg)
))
2行目で画像を保存し、4,5行目で保存した画像を表示している
やりやすい方法
(define (script-fu-stamp img2 drawable) ←imgをimg2に変更
(let* ((old-bg-color (car (gimp-palette-get-background)))
(old-fg-color (car (gimp-palette-get-foreground)))
(sizeX (car (gimp-image-width img2))) ←imgをimg2に変更
(sizeY (car (gimp-image-height img2))) ←imgをimg2に変更
(img 0)
)
(set! img (car (gimp-channel-ops-duplicate img2)))
(gimp-image-undo-disable img)
: :
(gimp-image-undo-enable img)
(gimp-display-new img)
))
履歴
(gimp-undo-push-group-start img)
・・・
(gimp-undo-push-group-end img)
GIMP2.0以降は
(gimp-image-undo-group-start img)
・・・
(gimp-image-undo-group-end img)
このようにすると・・・の部分の履歴がUndo1回分になる
履歴2
(gimp-image-undo-disable img)
・・・
(gimp-image-undo-enable img)
このようにすると・・・の部分のUndoができなくなる!!
|
|
|