GIMP2.6 とステンドグラスロゴ

もう、GIMP 2.4 から、Script-Fu の仕様が変わってたそうで・・・
長い事触ってなかったので知らなかったですが、ステンドグラスロゴ
を無事動くように変更しました。
実行画面とコード
UTF8N で保存して、スクリプトディレクトリに置いて下さい
( 例:C:\Program Files\Gimp-2.0\share\gimp\2.0\scripts\super-logos01.scm )

昔ながらの方法で、テキストは入力です。
完全に今時にするには、もうちょっとコード読まないといけないのですが、
Script-Fu のコード見てると腹立って来るので・・・
; ***********************************************************
; GIMP 2.6 移植時の作業
; 
; 1) 変数は宣言する
; ( http://iccii.seesaa.net/article/62438175.html を参照 )
; 2) set-pt を定義する
; ***********************************************************
(define (apply-super-logos01-effect image logo-layer random blur offset )
(let* (
        (bump-layer 0)
        (v_point 0)
        (path-layer 0)
        (outline-layer 0)
    (width (car (gimp-drawable-width logo-layer)))      ;ロゴの幅
    (height (car (gimp-drawable-height logo-layer)))    ;ロゴの高さ
    (bg-layer (car (gimp-layer-new image width height RGB-IMAGE "Background" 100 NORMAL-MODE))) ;背景レイヤー
    (fg-color '(0 0 0))                                 ;前景色=黒
    (bg-color '(255 255 255)) )                         ;背景色=白

    ;イメージサイズ変更と背景レイヤー作成
    (gimp-image-add-layer image bg-layer 1)     ;背景レイヤーをlogo-layerの下にAdd
    (gimp-image-resize-to-layers image)         ;イメージサイズをレイヤーに合わせる
    (gimp-selection-none image)                 ;選択なし
    (gimp-context-set-background bg-color)      ;背景色を白に
    (gimp-edit-fill bg-layer BACKGROUND-FILL)   ;背景レイヤーを白でFILL

    ;バンプマップ用イメージ作成
    (set! bump-layer (car(gimp-layer-copy logo-layer 1)))   ;logo-layerのコピー
    (gimp-image-add-layer image bump-layer -1)              ;bump-layerをTopに追加
    (gimp-image-raise-layer-to-top image bump-layer)
    (gimp-layer-set-name bump-layer "Text")

    ;テキストにプラズマ/モザイク描画
    (gimp-selection-layer-alpha logo-layer)                 ;AlphaChanelをSelecdtionMaskに
    (plug-in-plasma 1 image logo-layer random 7)            ;プラズマ描画
    (gimp-context-set-background fg-color)                  ;背景色を黒に
    (plug-in-mosaic 1 image logo-layer                      ;モザイク描画
                                15
                                4
                                1
                                0.65
                                1
                                135
                                0.2
                                1
                                1
                                1
                                0
                                1 )
    (set! v_point (cons-array 8 'byte))                     ;明るさとコントラストを調整
    (set-pt v_point 0 0 0 )
    (set-pt v_point 1 64 64 )
    (set-pt v_point 2 128 226 )
    (set-pt v_point 3 255 255 )
    (gimp-curves-spline logo-layer HISTOGRAM-VALUE 8 v_point)
    (gimp-selection-none image) 

    ;輪郭を描画
;    (plug-in-vpropagate 1 image bump-layer
;                                6   ;propagate-mode
;                                1   ;propagating-channel
;                                1   ;propagating-rate
;                                15   ;direction-mask
;                                0   ;lower-limit
;                                255 ;upper-limit
;                                )
;    (gimp-selection-layer-alpha bump-layer)                 ;AlphaChanelをSelecdtionMaskに
;    (gimp-selection-shrink image 5)                         ;縮小
;    (gimp-edit-clear bump-layer)                            ;選択範囲を削除

    ;テキストをパスに変換
    (gimp-selection-layer-alpha bump-layer)                 ;テキストを選択 
    (plug-in-sel2path 1 image bump-layer)                   ;選択をパスに
    (gimp-selection-none image)
    (set! path-layer (car (gimp-layer-new image width height RGBA-IMAGE "Path" 100 NORMAL-MODE)))
    (gimp-image-add-layer image path-layer -1)              ;新規レイヤーpath-layerを追加
    (gimp-selection-all image)
    (gimp-edit-clear path-layer)
    (gimp-context-set-foreground fg-color)    
    (gimp-context-set-brush "Circle (05)")
    (gimp-path-stroke-current image)

    (set!  outline-layer (car(gimp-layer-copy path-layer 1)))
    (gimp-image-add-layer image outline-layer 0)

    (gimp-drawable-set-visible bump-layer 0)

    (gimp-context-set-background bg-color)                  ;背景色を白に
    (gimp-selection-layer-alpha outline-layer)                 ;透明以外を選択     
    (gimp-edit-blend outline-layer         ;drawable
                        FG-BG-RGB-MODE  ;blend_mode 
                        NORMAL-MODE     ;paint_mode 
                        GRADIENT-SHAPEBURST-SPHERICAL ;gradient_type 
                        100             ;opacity 
                        0               ;offset 
                        REPEAT-NONE     ;repeat 
                        TRUE            ;reverse 
                        FALSE           ;supersample
                        0               ;max_depth(supersample) 
                        0               ;threshold(supersample) 
                        TRUE            ;dither 
                        width 
                        height 
                        (+ width 20) 
                        height )
    (gimp-selection-none image)                         ;選択解除
                                  
    (plug-in-bump-map 1 image outline-layer outline-layer 135 45 3 0 0 0 0 1 0 LINEAR )

    (plug-in-gauss-iir2 1 image path-layer blur blur)
    (gimp-layer-set-offsets path-layer offset offset)

    (gimp-selection-none image)                 ;選択なし
    (gimp-image-flatten image)                  ;画像統合
);end of let*
);end of define

(define (script-fu-super-logos01 text size fontname random blur offset)
(let*
    (
        (img 0)
        (text-layer 0)
    )
    (set! img (car (gimp-image-new 256 256 RGB)))
    (gimp-context-set-foreground '(0 0 0) )
    (set! text-layer (car (gimp-text-fontname img -1 0 0 text 10 TRUE size PIXELS fontname)))
    (gimp-image-undo-disable img)
    (gimp-drawable-set-name text-layer text)
    (apply-super-logos01-effect img text-layer random blur offset) ;FONT EFFECT
    (gimp-image-undo-enable img)
    (gimp-display-new img)
)
)

(define
   (set-pt a index x y)
   (begin
      (aset a (* index 2) x)
      (aset a (+ (* index 2) 1) y)
   )
)

(script-fu-register
    "script-fu-super-logos01"                       ;Script name
    "<Toolbox>/Xtns/Script-Fu/Logos/super-logos01"  ;Menu
    "Super Logos No.01  beta 0.1"                   ;Description
    "RETOUCH-SCRIPT"                                ;Creater
    "copyright 2006, RETOUCH-SCRIPT"                ;copyright notice
    "Nov 01, 2006"                                  ;date created
    ""
    SF-STRING       "Text"                  "GIMP 2.2"
    SF-ADJUSTMENT   "Font size (pixels)"    '(100 2 1000 1 10 0 1)
    SF-FONT         "Font"                  "Cooper"
    SF-ADJUSTMENT   "Random seed"           '(1000 0 2000 5 10 0 0)
    SF-ADJUSTMENT   "Shadow blur"           '(3 0 30 1 10 0 1)
    SF-ADJUSTMENT   "Shadow offset"           '(1 0 30 1 10 0 1)
  
);end of register
(let* (
        (bump-layer 0)
        (v_point 0)
        (path-layer 0)
        (outline-layer 0)
      )
    ここはコード
)

という具合に変数を定義と同時に値をセットしています。
これをしておかないど、コード処理で使用できません

script-fu-super-logos01 の定義ではそれがはっきり見て解ります。

それと、set-pt 関数が昔あったか、他のスクリプトに当時定義されていたかですが、
いずれにしても、追加です。
( http://comunidad.fotolibre.net/index.php?topic=1478.msg10051 で見つけました )