;;22mhkamifubuki
;Kiki
;http://kikidide.yuki-mura.net/GIMP/gimp.htm
;http://kikidide.yuki-mura.net/GIMP/engimp.htm
;

(define (script-fu-kesu img llayer)
    (gimp-selection-all img)
    (gimp-edit-clear llayer)                   ;選択部分を消去
    (gimp-selection-none img)                  ;選択解除
)

(define (script-fu-22mhkamifubuki text size font color1 color2 bgm bg-color bgg bgp ft)
  (let* ((img (car (gimp-image-new 256 256 RGB)))
;;文字
	 (text-layer (car (gimp-text-fontname img -1 0 0 text (+ (/ size 12) 4) TRUE size PIXELS font)))

;;幅と高さ
	 (width (car (gimp-drawable-width text-layer)))
	 (height (car (gimp-drawable-height text-layer)))

         (old-fg (car (gimp-palette-get-foreground)))
         (old-grad (car (gimp-gradients-get-active)))
         (old-pat (car (gimp-patterns-get-pattern)))

)
(gimp-image-undo-disable img)
;;サイズ調整
    (gimp-image-resize img width height 0 0)

    (script-fu-22mhkamifubukiimg img text-layer color1 color2 bgm bg-color bgg bgp ft)

    (gimp-palette-set-foreground old-fg)
    (gimp-gradients-set-active old-grad)
    (gimp-patterns-set-pattern old-pat)

    (gimp-image-undo-enable img)
    (gimp-display-new img)
))

(script-fu-register "script-fu-22mhkamifubuki"
		    "<Toolbox>/Xtns/Script-Fu/MH/kamifubuki"
		    "22mhkamifubuki"
		    "Kiki"
		    "Kiki"
		    "2006/4"
		    ""
		    SF-STRING		"Text String"		"kamifubuki"
		    SF-ADJUSTMENT	"Font Size (pixels)"	'(150 5 1000 1 10 0 1)
		    SF-FONT		"Font"			"Raven"
		    SF-COLOR		"Color1"		'(255 12 182)
		    SF-COLOR		"Color2"		'(255 255 176)
                    SF-OPTION		"bg mode"		'(_"color" _"grad" _"pattern")
		    SF-COLOR		"Background Color"	'(237 237 255)
                    SF-GRADIENT		"Background Gradient"	"Caribbean Blues"
                    SF-PATTERN		"Background Pattern"	"Cork board"
                    SF-TOGGLE		"Flatten Image"		TRUE)


(define (script-fu-22mhkamifubukiimg img drawable color1 color2 bgm bg-color bgg bgp ft)
  (let* (

;;幅と高さ
	 (width (car (gimp-drawable-width drawable)))
	 (height (car (gimp-drawable-height drawable)))

;;追加レイヤー
	 (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL)))
	 (nz-layer (car (gimp-layer-new img width height RGB-IMAGE "noise" 100 NORMAL)))

         (old-fg (car (gimp-palette-get-foreground)))
         (old-bg (car (gimp-palette-get-background)))
         (old-grad (car (gimp-gradients-get-active)))
         (old-pat (car (gimp-patterns-get-pattern)))

)
;    (gimp-undo-push-group-start img)

    (gimp-image-add-layer img nz-layer 1)
    (gimp-palette-set-background '(255 255 255))	;add
    (script-fu-kesu img nz-layer)
    (gimp-selection-layer-alpha drawable)
    (plug-in-noisify 1 img nz-layer 1 1 1 1 0)
    (gimp-selection-none img)
    (gimp-image-remove-layer img drawable)
    (plug-in-vpropagate 1 img nz-layer 1 1 1 6 0 255)
    (plug-in-vpropagate 1 img nz-layer 1 1 1 6 0 255)
    (gimp-desaturate nz-layer)
    (gimp-brightness-contrast nz-layer 0 110)
    (gimp-layer-add-alpha nz-layer)
    (gimp-by-color-select nz-layer '(255 255 255) 25 2 0 0 0 0)
    (gimp-edit-clear nz-layer)
    (gimp-selection-none img)
    (plug-in-color-map 1 img nz-layer '(0 0 0) '(200 200 200) color1 color2 0)

;;背景色の決定
    (gimp-palette-set-foreground bg-color)
    (gimp-image-add-layer img bg-layer 1)
    (gimp-drawable-fill bg-layer FG-IMAGE-FILL)
    (cond((= bgm 1)
       (gimp-gradients-set-active bgg)			;グラデーションの設定
       (gimp-blend bg-layer CUSTOM NORMAL LINEAR 100 20 REPEAT-NONE FALSE 0 0 0 0 0 0 0 height))
    ((= bgm 2)
       (gimp-selection-all img)
       (gimp-patterns-set-pattern bgp)
       (gimp-bucket-fill bg-layer PATTERN-BUCKET-FILL NORMAL 100 255 FALSE 0 0)
       (gimp-selection-none img)
       ))

    (if (= ft TRUE)
    (gimp-image-flatten img)				;画像の統合
    )

    (gimp-palette-set-foreground old-fg)
    (gimp-palette-set-background old-bg)
    (gimp-gradients-set-active old-grad)
    (gimp-patterns-set-pattern old-pat)

;    (gimp-undo-push-group-end img)
    (gimp-displays-flush)
))


;画像加工本体
(define (script-fu-22mhkamifubukiimgh img drawable color1 color2 bgm bg-color bgg bgp ft)
  (let* (
	(img2 (car (gimp-channel-ops-duplicate img)))
	(drawable2 (car (gimp-image-get-active-layer img2)))
	)
	(gimp-image-undo-disable img2)
	(script-fu-22mhkamifubukiimg img2 drawable2 color1 color2 bgm bg-color bgg bgp ft)
	(gimp-image-undo-enable img2)
	(gimp-display-new img2)
  )
)

(script-fu-register "script-fu-22mhkamifubukiimgh"
		    "<Image>/Script-Fu/MH/kamifubuki"
		    "22mhkamifubuki"
		    "Kiki"
		    "Kiki"
		    "2006/4"
		    "RGB*"
		    SF-IMAGE		"Image"			0
		    SF-DRAWABLE		"Drawable"		0
		    SF-COLOR		"Color1"		'(255 12 182)
		    SF-COLOR		"Color2"		'(255 255 176)
                    SF-OPTION		"bg mode"		'(_"color" _"grad" _"pattern")
		    SF-COLOR		"Background Color"	'(237 237 255)
                    SF-GRADIENT		"Background Gradient"	"Caribbean Blues"
                    SF-PATTERN		"Background Pattern"	"Cork board"
                    SF-TOGGLE		"Flatten Image"		FALSE)
