もう、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 で見つけました )
|