Top > ScriptFuClass > Step3 äžéç® æåã®ã¹ã¯ãªãã
ããã§æäœéå¿ èŠãª Scheme ã®èª¬æãçµãããæåã®ã¹ã¯ãªãããæžãããšãã§ããããã«ãªããŸãããæåã®ã¹ã¯ãªããã¯éåžžã«ã·ã³ãã«ã§ããããããšãŠãéèŠãªæå³ãæã£ãŠããŸãããŸãã¯ã¬ã€ã€ãŒãè€è£œããã¹ã¯ãªãããšæ°èŠç»åãäœãã¹ã¯ãªãããäœã£ãŠã¿ãŸãããã 3.1 ç»åäŸååãšç¬ç«å®è¡å
ã¹ã¯ãªããã«ã¯å€§ããåããŠç¬ç«å®è¡åã®ã¹ã¯ãªãããšç»åäŸååã®ã¹ã¯ãªããã®äºçš®é¡ããããŸãã 3.1.1 ç»åäŸåå
ç»åäŸååã®ã¹ã¯ãªããã¯ãã¹ã¯ãªããã®å®è¡ã«ç»å (ãã¬ã€ã€ãŒç) ãå¿ èŠãšããåŠçãè¡ãã¹ã¯ãªããã§ããã¬ã€ã€ãŒã«å¯ŸããŠäœããã®æäœãè¡ããã®ãããã§ãããã®ã¿ã€ãã®ã¹ã¯ãªããã¯ã¡ãã¥ãŒã®ããŸããŸãªå Žæã«çœ®ãããŠããŸãã 3.1.2 ç¬ç«å®è¡å
ç¬ç«å®è¡åã®ã¹ã¯ãªããã¯ãã¹ã¯ãªããã®å®è¡ã«ç»åãå¿ èŠãšããªãã¹ã¯ãªããã§ããç»åãèªåã§äœãäžããŠããŸããã®ãå€ãã§ãããã®ã¿ã€ãã®ã¹ã¯ãªããã¯äž»ã« ãã¡ã€ã«/ç»åã®äœæ/{ãã¿ã³|ããŽ|ãã¿ãŒã³|Web ããŒãžããŒãã®äœæ} ã®äžã«çœ®ãããŠããŸãã ãã®æ¬¡ã§ã¯ç»åäŸååã¹ã¯ãªãããšç¬ç«å®è¡åã®ç°¡åãªäŸãšããŠãæãåºæ¬çãªã¹ã¯ãªãããäœããŸãã 3.2 ããã·ãŒãžã£ãã©ãŠã¶
ãã«ã/ããã·ãŒãžã£ãã©ãŠã¶... ã«ãã ããã·ãŒãžã£ãã©ãŠã¶ã§ã¯ãGimp ã®ãããã³ã«ããŒã¿ããŒã¹ã«ç»é²ãããŠã㊠Script-Fu ããåŒã³åºããŠå©çšããããšãã§ãã颿°ãæ€çŽ¢ããããšãã§ããŸãã 3.2.1 ããã·ãŒãžã£ãã©ãŠã¶ã®äœ¿ãæ¹
Script-Fu ãæžãæã§ Gimp ã®æ©èœãäœã䜿ããããšããããã·ãŒãžã£ãã©ãŠã¶ãããç®åœãŠã®æ©èœãè¡ã颿°ãæ¢ããŠãå ¥åãšããŠå¿ èŠãªåŒæ° (ããã°åºåã) ã確èªããããšãã§ããŸããã¹ã¯ãªãããäœæããå Žåãã颿°ã®äžã€ãšããŠãã®ã¹ã¯ãªãããããŒã¿ããŒã¹ã«ç»é²ãããŸãã 颿°ãæ¢ãæã¯ãæ€çŽ¢æ¬ã«æ¢ãããã¿ãŒã²ããã®ããŒã¯ãŒããå ¥åããã ãã§ãããããšããŒã¯ãŒãã«äžèŽãã颿°ã ããå·ŠåŽã«æ®ããŸãããã®äžã¯ "new" ã§æ€çŽ¢ããçµæã§ãã å·ŠåŽããäœãäžã€é¢æ°ãéžã¶ãšããã®é¢æ°ã«é¢ããæ å ±ãå³åŽã«è¡šç€ºãããŸãããã®é¢æ°ã®èª¬æãšã(ããã°) å šãŠã®å ¥åã®åŒæ°ãšãå šãŠã®åºåã®åŒæ°ã«ã€ããŠã®æ å ±ãšããã«ããšãã®ä»ã®èäœæš©æ å ±ãªã©ã§ãããã«ãã«ã¯ãã®é¢æ°ã䜿ãäžã§éèŠãªæ å ±ã詳ããæžãããŠããã®ã§ãã¯ãããŠäœ¿ã颿°ã®æã«ã¯äžåºŠç®ãéããŠããããã«ããŸãããã Script-Fu ãæžãæã«ã¯ãåºæ¬çã«ãã®ããã·ãŒãžã£ãã©ãŠã¶ã§é¢æ°ãæ¢ããªããæžãããšã«ãªããŸãããã®ããæ¬¡ã®äœæ¥ã®ç¹°ãè¿ãã§ã¹ã¯ãªãããæžãããšã«ãªããŸãã
æ€çŽ¢ãããããŒã¯ãŒããåãããªãå Žåã¯ãGimp ãè±èªã¢ãŒãã§èµ·åãããšããŒã«ãã³ãã³ããè±èªè¡šç€ºã«ãªãã®ã§åãããããã§ããããè±èªã¢ãŒãã§èµ·åããã«ã¯ç°å¢å€æ°ãlangãããenãã«èšå®ããŸããç°å¢å€æ°ã®èšå®æ¹æ³ã¯äœ¿çšããŠãã OS ã«ããç°ãªãã®ã§è©²åœãµã€ããåç §ããŠãã ããã 3.2.2 ããã·ãŒãžã£ãã©ãŠã¶ã§è¡šç€ºãããåŒæ°å
ããã·ãŒãžã£ãã©ãŠã¶ã®å³åŽã®å ¥åãã©ã¡ãŒã¿/åºåè¿ãå€ã®ãšããã§ã¯ãåŒæ°ãšããŠæåŸ ãããŠããåã衚瀺ãããŠããŸããã¹ã¯ãªãããæžãå Žåã«ã¯ãééã£ãåã®å€ãäžããªãããã«ããŸããããããåŒæ°ã®åãééãããšãã¹ã¯ãªãããå®è¡ãããšãã«ãšã©ãŒãšãªããŸãã ãã®äžã«ã¯åŒæ°åã®èª¬æããããŸãããã¯ãããŠèªãå Žåã¯èªã¿é£ã°ããŠããŸã£ãŠãæ§ããŸãããåŸã§èªãå¿ èŠãåºãŠãããšãã«åç §ããçšåºŠã§ããã§ãããã
3.3 ã¬ã€ã€ãŒãè€è£œããã¹ã¯ãªãã
ããããæåã® Script-Fu ãæžãäœæ¥ã§ãããã®ã¬ã€ã€ãŒãè€è£œããã¹ã¯ãªããã¯ãè€è£œå ã®ã¬ã€ã€ãŒãå¿ èŠãšããç»åäŸååã®ã¹ã¯ãªããã§ãã ããã§ã¯ Scheme ã«ã€ããŠè²ã ãšèª¬æããåã«ãã¬ã€ã€ãŒãè€è£œããã ããšããéåžžã«ã·ã³ãã«ãª Script-Fu ãæžããŠããŸããŸããããããã¹ã¯ãªãããã©ã®ãããªæ§æã«ãªã£ãŠããã®ãã説æããŸãã 3.3.1 æžããã¹ã¯ãªããã眮ã
æåã®ã¹ã¯ãªãããã±ã£ãšèŠãã ãã§ã¯ããŸã äœãã©ããªã£ãŠããã®ãåãããªãã§ãããããšãããããã®ã¹ã¯ãªããããUnix ãŠãŒã¶ãŒã¯ Emacs çã®ãšãã£ã¿ã§ãWindows ãŠãŒã¶ãŒã¯ã¡ã¢åž³ãªã©ã䜿ã£ãŠå ¥åããŠäžãããå ¥åãããã¡ã€ã«ã¯ããã¡ã€ã«åãšã㊠duplicate-layer.scm ãªã©ãšããŠä¿åããŠäžããã ãã®ä¿åãã duplicate-layer.scm ããããªãã®å人çšã® scripts ãã£ã¬ã¯ããªã«å ¥ããŸããUnix ãŠãŒã¶ãŒãš Windows ãŠãŒã¶ãŒã®å Žåã§ã¯ãããããã®ããã«ãªããŸãã
3.3.2 ã¬ã€ã€ãŒè€è£œã®ã¹ã¯ãªãã
(define (script-fu-duplicate-layer img layer) (let* ( (copy-layer (car (gimp-layer-copy layer TRUE))) ) (gimp-image-add-layer img copy-layer -1) (gimp-displays-flush) ) ) (script-fu-register "script-fu-duplicate-layer" "Duplicate Layer..." "description" "name" "copyright" "date" "RGB*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0) (script-fu-menu-register "script-fu-duplicate-layer" "<Image>/Filters/Test") 3.3.3 ã¹ã¯ãªãããåãã
ããã§ã¯äžã®ã¹ã¯ãªããã®èª¬æã«å ¥ããŸããæ°ããã¹ã¯ãªããã scripts ãã£ã¬ã¯ããªã«ã³ããŒããããGimp ãèµ·åããŠäžãããèªåçã«ãã®ã¹ã¯ãªãããèªã¿èŸŒãŸããŸããããæ¢ã« Gimp ãèµ·åããŠããç¶æ ã§ã¹ã¯ãªãããã³ããŒããã®ãªããæ°ããã¹ã¯ãªããã Gimp ã«èªã¿èŸŒãŸãããã ãã£ã«ã¿/Script-Fu/ã¹ã¯ãªãããåèªã¿èŸŒã¿... ãããŠãããŠäžãããã¹ã¯ãªããã®äžéšãæžãæããŠããã®å€æŽãåæ ãããããšãã«ãã¹ã¯ãªãããåèªã¿èŸŒã¿ããããšåæ ã§ããŸãã ãã£ããäœæããã¹ã¯ãªãããåãããŠã¿ãŸãããããã£ã«ã¿/Test/Duplicate Layer... ã®ã¡ãã¥ãŒãã¹ã«ä»åæ°ããäœã£ãã¹ã¯ãªãããç»é²ãããŠãããšæããŸããããã䜿ããšãã¬ã€ã€ãŒãè€è£œãããŸã (ã¬ã€ã€ãŒãã€ã¢ãã°ã§ç¢ºèªããŠäžãã)ãã¡ããã©ã¬ã€ã€ãŒãã€ã¢ãã°ã®è€è£œãã¿ã³ãæŒãããšããšåãåäœã§ããã 3.3.4 äžã§ãã£ãŠããããš
ãªããã®ããã«ãªãã®ããã¹ã¯ãªããã§ãã£ãŠããããšã«ã€ããŠèª¬æããŸããé çªãéã«ãªã£ãŠããŸããŸãããæåŸã®æ¹ããèŠãŠãããŸãããã(å é ã®æ°åã¯ããã®ã¹ã¯ãªããã®ç©ºçœè¡ãå«ãã æåã®æ¹ããã®éãè¡çªå·ã§ã) ã¹ã¯ãªããã®ç»é² 10| (script-fu-register 11| "script-fu-duplicate-layer" 12| "Duplicate Layer..." 13| "description" 14| "name" 15| "copyright" 16| "date" 17| "RGB*" 18| SF-IMAGE "Image" 0 19| SF-DRAWABLE "Drawable" 0) 20| 21| (script-fu-menu-register "script-fu-duplicate-layer" 22| "<Image>/Filters/Test") script-fu-register ããå§ãŸã£ãŠãããã® 10 è¡ç®ãã 19 è¡ç®ãŸã§ã®éšåã¯ãscript-fu-duplicate-layer ãšãã颿°ã Gimp ãžç»é²ããŠããŸãã21 è¡ç®ãš 22 è¡ç®ã§ã¯ script-fu-duplicate-layer ãšãã颿°ãã¡ãã¥ãŒã«ç»é²ããŠããŸãã script-fu-register ã«ãã Gimp ãžã®ç»é²ã¯ãåºæ¬çã«å šãŠã®ã¹ã¯ãªããã«ãšã£ãŠå¿ é ã§ãã11 è¡ç®ã¯ãã®ã¹ã¯ãªããã Gimp ã§ç»é²ããæã«æå®ããååã§ããã§ã«äœ¿çšæžã¿ã§ã¯ãªãååãèªåã§èªç±ã«èšå®ããããšãã§ããŸãããã ã Script-Fu ã®ã¹ã¯ãªããã®å Žå㯠"script-fu-" ã«ç¶ããŠã¹ã¯ãªããã®ååãä»ããã®ãæ £äŸãšãªã£ãŠããŸãã 12 è¡ç®ã¯ãã®ã¹ã¯ãªããã®ã³ãã³ãã®ã¡ãã¥ãŒã§ã®è¡šç€ºåãæžããŸãã 13 è¡ç®ã¯ãã®ã¹ã¯ãªããã®èª¬æãæžããŸãã 14 è¡ç®ã¯ãã®ã¹ã¯ãªããã®èäœæš©æ å ±ãæžããŸãã 15 è¡ç®ã¯ãã®ã¹ã¯ãªãããäœæããæ¥ä»ãæžããŸãããããã¯ããããã¢ã«ãã¡ãããã§èšè¿°ããããã·ãŒãžã£ãã©ãŠã¶... ã§èŠããšãã«å³åŽã«è¡šç€ºãããæ å ±ãšãªããŸãã 17 è¡ç®ã¯ãã®ã¹ã¯ãªãããã©ã®ç»åã¢ãŒãã§äœ¿çšã§ããã®ããšããèšå®ã§ããRGB* ãšãªã£ãŠããã®ã¯ãRGB ã¢ãŒããš RGBA ã¢ãŒãã®äž¡æ¹ã§äœ¿ããããšã瀺ããŠããŸããRGB ã¢ãŒãã ããããã§æå®ããå Žåãã¬ã€ã€ãŒã«ã¢ã«ãã¡ãã£ã³ãã«ããã£ããšãã«ãã®ã¹ã¯ãªããã䜿ãããšãã§ããŸãããã¢ãŒãæå®ã¯ RGB(RGBA) ã®ã»ãã«ãGRAY(GRAYA)ãINDEXED(INDEXEDA) ããããããããã°ã¬ãŒã¹ã±ãŒã«ãšã€ã³ããã¯ã¹ã¢ãŒãã«ãªããŸããã¹ã¯ãªããã察象ãšããã¢ãŒãã«åãããŠæå®ããŸããã ããããåŸã¯ã¹ã¯ãªããæ¬äœã«æž¡ãåŒæ°ã«ãªããŸãã18 è¡ç®ãš 19 è¡ç®ã¯ããããã€ã¡ãŒãžãšããã¢ãã«ãåã£ãŠãããšããæå®ã§ããç»åäŸååã¹ã¯ãªããã®å ŽåãSF-IMAGE "Image" 0 ãš SF-DRAWABLE "Drawable" 0 ã®äºã€ã¯å¿ ãå¿ èŠã«ãªããŸãããããæžããŠãããšããã®æã¢ã¯ãã£ã*1ã«ãªã£ãŠããç»å (ç»åãŠã£ã³ããŠããèŠããç»åãšèãããšåãããããããª) ãšããã®æã¢ã¯ãã£ãã«ãªã£ãŠããããã¢ãã« (ãã®å Žåã¯ã¬ã€ã€ãŒã§ã) ã®äºã€ãã¹ã¯ãªããæ¬äœã«æž¡ãããšãã§ããŸãã 21 è¡ç®ãš 22 è¡ç®ã¯ã¹ã¯ãªãããã¡ãã¥ãŒã«é 眮ããããã®ç»é²ããã£ãŠãããšããã§ãã"Duplicate Layer..." ã®ã³ãã³ããã¡ãã¥ãŒã®ã©ã®äœçœ®ã«çœ®ãã®ããšãããã®ã§ãç»åäŸååã¹ã¯ãªããã®å Žå㯠<Image> ããã¡ãã¥ãŒãã¹ãæžãã¯ãããã¿ã€ããå€ããªããŸãã ã¹ã¯ãªããæ¬äœã®åŒã³åºã 1| (define (script-fu-duplicate-layer img layer) 1 è¡ç®ãããããã¹ã¯ãªããã®æ¬äœãå§ãŸããŸãããã®è¡ã¯ script-fu-duplicate-layer ãšããååã®é¢æ°ãå®çŸ©ããŠããŸãããã®ååã¯ã¹ã¯ãªããã®ç»é²ããæã« 11 è¡ç®ã§ä»ããååãšåãã«ããªããã°ãªããããã®ååã®é¢æ°ãã¹ã¯ãªãããå®è¡ããæã«åŒã³åºãããããšã«ãªããŸãã ãã®åŒã³åºãã«ç¶ã㊠img ãš layer ãšãããã®ããããŸããããã¯äœããšãããšãåè¿°ã® SF-IMAGE ãš SF-DRAWABLE ã§åã£ãŠããç»åã®æ å ±ãšããã¢ãã« (ã¬ã€ã€ãŒ) ã®æ å ±ãããããã®å€æ°ã«å ¥ã£ãŠããã®ã§ãããã®ããã¹ã¯ãªããã®äžã§ã¢ã¯ãã£ããªç»åãåãæ±ãããæã¯ img ããã¬ã€ã€ãŒãæ±ããããšã㯠layer ã䜿ãã°ããããšã«ãªããŸãã æ¬äœã®äœæ¥ 2| (let* ( 3| (copy-layer (car (gimp-layer-copy layer TRUE))) 4| ) 5| (gimp-image-add-layer img copy-layer -1) 6| (gimp-displays-flush) 7| ) 8|) ã¹ã¯ãªããæ¬äœãåŒã³åºããããæ¬¡ã¯æ¬äœå éšã§è¡ãäœæ¥ãæžããŸããäœæ¥ãå šãŠæžãçµãããã1è¡ç®ã§åŒã³åºãã (define æã®æ¬åŒ§ãéããªããã°ãªããªãã®ã§ã8 è¡ç®ã§æ¬åŒ§éã ")" ãæžããŠãã®ã¹ã¯ãªãããçµããŠããŸããã€ãŸã 1 è¡ç®ã® (define (script-fu-duplicate-layer img layer) ã®çµãã㯠8 è¡ç®ã§ã1 è¡ç®ãã 8 è¡ç®ã®ãã®éãå®éã«ä»åã®ã¹ã¯ãªããã®åŠçãè¡ã£ãŠãããšããã§ãã 2 è¡ç®ã¯å±æå€æ°ã䜿çšãããã let* æ§æã䜿ã£ãŠããŸããããã§äœ¿çšããŠãã屿倿°ã¯ copy-layer ã®äžã€ã ãã§ãã屿倿°ã®å®£èšã¯ 3 è¡ç®ã§è¡ã£ãŠããã4 è¡ç®ã®éãæ¬åŒ§ã¯ããã§ let* æ§æã®å€æ°å®£èšéšåãçµããã§ããããšã瀺ãéãæ¬åŒ§ã§ãã 3 è¡ç®ã¯ã¬ã€ã€ãŒãã³ããŒããŠããŸããä»ãããšèŠãã ãã§ã¯ããªã car ã䜿ã£ãŠ (car ã¯ãªã¹ãã®å é ã®èŠçŽ ãåãåºãããšãæãåºããŠäžãã)ãããã copy-layer ã«å ¥ããŠããã®ãåãããªãã§ãããã ããã®ã§éèŠãªã®ã¯ã(gimp-layer-copy layer TRUE) ã§ã¯äœãè¿ã£ãŠããã®ããšããããšã§ãããã«ã/Script-Fu/ããã·ãŒãžã£ãã©ãŠã¶... ãéããŠã¿ãŠäžãããããã¯ã¬ã€ã€ãŒãã³ããŒãã颿°ã§ããã®é¢æ°ãæ¢ãããã«æ€çŽ¢æ¬ã« copy ãšå ¥åããŠæ€çŽ¢ãããšäžã®ããã«ãªããŸãã ãããš Gimp ã«ç»é²ãããŠãã颿°ã§ copy ãšããããŒã¯ãŒãã«äžèŽãããã®ããªã¹ãã¢ãããããŸãããããã gimp-layer-copy ãšããã®ãã¬ã€ã€ãŒãã³ããŒãã颿°ã ãšäºæ³ãã€ããŸãããããèŠãŠã¿ããšãå ¥åã« layer ãš add-alpha ã®äºã€ã®ãã©ã¡ãŒã¿ãå¿ èŠã§ãåºå㯠layer-copy ã ãšããããšãåãããŸãã layer ãšããã®ã¯ 1 è¡ç®ã® define ã§åºãŠãã layer ã«å ¥ã£ãŠããæ°å€ããã®ãŸãŸäœ¿ããŸããadd-alpha ã¯ã¬ã€ã€ãŒã«ã¢ã«ãã¡ãã£ã³ãã«ã远å ãããã©ããã§ãããã§ã¯ TRUE ãšããŠãããŸãã ãããŠãªã 3 è¡ç®ã§ car ã䜿ãã®ããšããçç±ã¯ãgimp-layer-copy ã§ layer ãã³ããŒããçµæã¯ãªã¹ãã§è¿ã£ãŠããããã§ãããã®ãªã¹ãã®å é ã«ã¯ã³ããŒããã¬ã€ã€ãŒã® ID çªå·ãå ¥ã£ãŠããŸãããã® ID çªå·ãåãåºã㊠copy-layer ã«å ¥ããããšã§ã次åãã㯠copy-layer ãã³ããŒããã¬ã€ã€ãŒãšããŠæ±ãããšãã§ããããã«ãªããŸãã ããã§ã¬ã€ã€ãŒãã³ããŒãããã®ãæã«å ¥ã£ãã®ã§ããããŸã ã³ããŒããã¬ã€ã€ãŒã¯å®éã®ã¬ã€ã€ãŒã¹ã¿ãã¯ã«ã¯çŸããŠããŸãããåã«ã³ããŒããã¬ã€ã€ãŒã Gimp å éšã§äœãããã ããªã®ã§ãã¬ã€ã€ãŒéå±€ã«ã³ããŒããã¬ã€ã€ãŒã远å ããå¿ èŠããããŸããlayer ã§æ€çŽ¢ãããšãgimp-image-add-layer ãèŠä»ãããŸãã ããã«ã¯å ¥åãã©ã¡ãŒã¿ãšã㊠image ãš layer ãš position ãå¿ èŠãšããŸãããã®é¢æ°ã¯ç»å image ã«ã¬ã€ã€ãŒ layer ã远å ãããšããæå³ã§ããããimage ã«ã¯ define è¡ã§åºãŠãã img ããlayer ã«ã¯ã³ããŒããã¬ã€ã€ãŒãæã copy-layer ã䜿ããŸããposition ã¯ã¬ã€ã€ãŒã¹ã¿ãã¯ã®ã©ãã«çœ®ãã®ããšããäœçœ®ãæå®ãããã®ã§ã-1 ãæå®ãããšçŸåšã¢ã¯ãã£ãã«ãªã£ãŠããã¬ã€ã€ãŒã®äžã«ã¬ã€ã€ãŒã远å ãããŸãã0 ãæå®ãããšåŒ·å¶çã«ã¬ã€ã€ãŒã¹ã¿ãã¯ã®äžçªäžã«è¿œå ãããŸãã (gimp-displays-flush) ãšããã®ã¯ãè¡šç€ºãæŽæ°ããããã®æ±ºãŸãæå¥ã§ããããã§ã¯ã¬ã€ã€ãŒãã³ããŒããŠè¿œå ããã®ã§è¡šç€ºã«å€åããããŸãã5 è¡ç®ãç¡ããã°ãã®å€åãå®éã®è¡šç€ºã«åæ ãããŸãããã¹ã¯ãªããæ¬äœã®æåŸã«ã¯å¿ ãæžãããã«ããŸãããã 8 è¡ç®ã® ) ã®éãæ¬åŒ§ã¯ (define ã«å¯Ÿå¿ããæ¬åŒ§ã§ããããã§ã¹ã¯ãªããã®æ¬äœãçµãããŸããå¿ããã«éããããã«ããŸãããã 3.4 ç»åãäœæããã¹ã¯ãªãã
æ¬¡ã¯æ°èŠç»åãäœæããã¹ã¯ãªãããäœã£ãŠã¿ãŸãããã®ã¹ã¯ãªããã¯ç¡ããç»åãç£ã¿åºãç¬ç«å®è¡åã®ã¹ã¯ãªããã§ãã§ããäžã®ã¹ã¯ãªããããå ã»ã©ã®ã¹ã¯ãªãããšåãèŠé ã§ãã¡ã€ã«ã«æžããscripts ãã£ã¬ã¯ããªã«å ¥ããŠã¹ã¯ãªãããåèªã¿èŸŒã¿ããŠäžããã 3.4.1 ç»åäœæã®ã¹ã¯ãªãã
(define (script-fu-create-new-image bg-color width height) (let* ( (img (car (gimp-image-new width height RGB))) (layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE))) ) (gimp-context-push) (gimp-context-set-background bg-color) (gimp-drawable-fill layer BG-IMAGE-FILL) (gimp-image-add-layer img layer -1) (gimp-context-pop) (gimp-display-new img) (gimp-displays-flush) )) (script-fu-register "script-fu-create-new-image" "New Image..." "description" "name" "copyright" "date" "" SF-COLOR "Background color" '(255 255 255) SF-ADJUSTMENT "Width" '(256 1 1024 1 10 0 1) SF-ADJUSTMENT "Height" '(256 1 1024 1 10 0 1)) (script-fu-menu-register "script-fu-create-new-image" "<Image>/Filters/Test") ãã㯠ãã£ã«ã¿/Test/New Image... ã«ãããŸãããããåŒã³åºããšäžã®ãããªãã€ã¢ãã°ãçŸããŸããå®è¡ãããšãèæ¯è²ã§æå®ããè²ã®èæ¯ã¬ã€ã€ãŒãæã¡ã倧ãããå¹ ãšé«ãã§æå®ãããµã€ãºã®ã¬ã€ã€ãŒãçŸããã§ãããã ãã®ã¹ã¯ãªããã¯å ã»ã©ã®ã¹ã¯ãªãããããé·ãã®ã§ãå ¥åã®ãã¹ãªã©ã§ã¹ã¯ãªããã®å®è¡äžã«ãšã©ãŒãè¿ãããããããããããŸãããåèªã¿èŸŒã¿ãããæã«ãšã©ãŒãè¿ãããå Žåã¯ãéãæ¬åŒ§ãšéãæ¬åŒ§ãæ£ãã察å¿ããŠããªãæãå€ãããã§ããäžæåäžæåãééã£ãŠããªãããã確ãããŠäžããã 3.4.2 äžã§ãã£ãŠããããš
ã¹ã¯ãªããã®ç»é² 20| (script-fu-register 21| "script-fu-create-new-image" 22| "New Image..." 23| "description" 24| "name" 25| "copyright" 26| "date" 27| "" ä»åã®ã¹ã¯ãªããã®é¢æ°ã®åå㯠create-new-image ã«ããŸãããããã 21 è¡ç®ã§ãã22 è¡ç®ã§ã¡ãã¥ãŒäžã§ã®ã³ãã³ãåãæå®ããŠããŸãã23ã24ã25ã26 è¡ã¯ååãšåãããã¹ã¯ãªããã®èª¬æãšäœè ã®ååãšã¹ã¯ãªããã®èäœæš©è¡šç€ºãšã¹ã¯ãªãããäœæããæ¥ä»ã§ãã27 è¡ç®ã«ã¯äœãæå®ããããŸããããããã¯ãã®ã¹ã¯ãªããããŒãã®ç¶æ ããç»åãäœæããç¬ç«å®è¡åã®ããã察象ãšããã€ã¡ãŒãžã®åãæå®ãããå¿ èŠãç¡ãã®ã§ãã åŒæ°å ¥åããã¯ã¹ã®äœæ 28| SF-COLOR "Background color" '(255 255 255) 29| SF-ADJUSTMENT "Width" '(256 1 1024 1 10 0 1) 30| SF-ADJUSTMENT "Height" '(256 1 1024 1 10 0 1)) 31| 32| (script-fu-menu-register "script-fu-create-new-image" 33| "<Image>/Filters/Test") 28ã29ã30 è¡ç®ã§ã¯ãã¹ã¯ãªããã«äžããå€ããŠãŒã¶ãŒã«æå®ããããã€ã¢ãã°ãäœãå ãšãªããŸããããã¯ç¬ç«å®è¡åã¹ã¯ãªããã§ãããå çšã®ç»åäŸååã¹ã¯ãªããã®ããã«æåã« SF-IMAGE ãš SF-DRAWABLE ãå¿ ãå¿ èŠãšã¯ããŸããã ããã§ã¯ã¹ã¯ãªããã«æž¡ããŠããåŒæ°ã¯ 3 ã€ã§ããSF-COLOR ã¯ãŠãŒã¶ãŒã«è²ãéžã°ããŸãã2 ã€ã® SF-ADJUSTMENT ã¯ãŠãŒã¶ãŒã«å€ãéžã°ããŸãããã®çµæãäžã®ãããªãã€ã¢ãã°ãèªåçã«äœãããŸãã 28 è¡ç®ã® SF-COLOR ã®æåã®æååã¯ãäžã®ãã€ã¢ãã°ã§ããã°ãã®èšå®ã®ã©ãã«åã§ããããã§ã¯ããã®è²ã¯èæ¯è²ãšããŠäœ¿ãããããšãæå³ããŠããã®ã§ "Background Color" ãšããŸããããã®é£ã«ã¯ãªã¹ãããããŸãããã®ãªã¹ãã¯è²ã衚ããŠããŠã'(èµ€ ç· é) ãšãã颚ã«èµ€/ç·/éã 0 ãã 255 ã®æŽæ°ã§æå®ãããšããã®è²ãã¹ã¯ãªãããæåã«åŒã³åºããæã®ããã©ã«ãã®è²ã«ãªããŸããä»å㯠'(255 255 255) ãªã®ã§çœè²ã«ãªã£ãŠããŸãã 29 è¡ç®ãš 30 è¡ç®ã® SF-ADJUSTMENT ã¯ã©ãã«åã "Width" ãš "Height" ãšéã£ãŠãã以å€ã¯åãã§ããããã§ã¯æ°ããäœãç»åã®å€§ãã (å¹ ãšé«ã) ããŠãŒã¶ãŒã«éžã°ããŠããŸãããªã¹ãã®äžã®èŠçŽ ã¯ 7 ã€å¿ èŠã§ããããããã®èŠçŽ ãäœãæå®ããŠããã®ãå·Šããé çªã«èª¬æããŸãã äžçªæåã¯ããã®ã¹ã¯ãªãããåŒã³åºããæã®ããã©ã«ãã®å€ãèšå®ããŠããŸãããã®æ¬¡ã¯ãã®æ°å€ã®ç¯å²ã®æäœå€ãæå®ããŠããŸãããã®æ¬¡ã¯ãã®æ°å€ã®æé«å€ãæå®ããŠããŸãããã®é£ã¯å°ããã¹ãããå¹ ã§ããã®é£ã¯å€§ããã¹ãããå¹ ã§ãããã®äºã€ã¯æ°å€ã墿žãããæã«ã©ã®ããããã€å€ãå€åããã®ããšãããã®ã§ãããã®æ¬¡ã¯å®æ°ã®ç²ŸåºŠãã€ãŸãå°æ°ç¹ç¬¬äœäœãŸã§ã®å€æŽãèš±ããã§ãå°æ°ç¹ä»¥äžã®æ°å€ãå¿ èŠãšããå Žåã«å€æŽããŸããæåŸã®æ°å€ã¯ããã®æ°å€éžæã 0 ã§ããã°ã¹ã©ã€ããŒã§ã1 ã§ããã°æ°å€å ¥åããã¯ã¹ã§è¡ãããã«ããŸãã ãããããŸãšãããšããã®æ°å€éžæã§ã¯ã¹ã©ã€ããŒã«ãã£ãŠ 1 ãã 1024 ãŸã§ã®æŽæ°ãéžã¶ããšãã§ããããã©ã«ãã®å€ã¯ 256 ã§ããããšããããšã§ããSF-ADJUSTMENT ã«ããæ°å€éžæã¯ãã䜿ãã®ã§ãèŠããŠãããšè¯ãã§ãããã ã¹ã¯ãªããæ¬äœã®åŒã³åºã 1| (define (script-fu-create-new-image bg-color width height) ãã®ã¹ã¯ãªããã®æ¬äœã®é¢æ°ã®ååã script-fu-create-new-image ãšããŠå®çŸ©ããŠããŸããããã¯äžã€ã®åŒæ°ãå¿ èŠãšããŸãããã㯠bg-color ãš width ãš height ã§ããbg-color ã«ã¯ã¹ã¯ãªãããå®è¡ããæã«çŸãããã€ã¢ãã°ã§ãŠãŒã¶ãŒãæå®ããè² (ããã¯èŠçŽ ãäžã€ã®ãªã¹ãã«ãªã£ãŠãã) ãå ¥ããŸããwidth ãš height ã«ã¯å¹ ãšé«ããå ¥ããŸãã ç»åäŸååã¹ã¯ãªããã§ããäžçªã¯ããã®ã¹ã¯ãªãããšæ¯èŒããå Žåãç¬ç«å®è¡åã¹ã¯ãªããã§ã¯ç»åã® img ãšã¬ã€ã€ãŒã® layer ãåãåãå¿ èŠããªãããšã«æ³šæããŠäžããã ç»åãšã¬ã€ã€ãŒã®äœæ 3| (let* ( 4| (img (car (gimp-image-new width height RGB))) 5| (layer (car (gimp-layer-new img width height RGB-IMAGE 6| "Background" 100 NORMAL-MODE))) 7| ) ãã®ã¹ã¯ãªããã¯æ°ããç»åãäœãã®ã§ããããŸã äœãååšããªãç¶æ ãªã®ã§ãã¯ããã«ç»åãšç»åäžã«ååšããã¬ã€ã€ãŒãäžã€ã¥ã€å¿ èŠã§ããæ°ããäœæããç»åã«ã¯ã¬ã€ã€ãŒãç¡ãã®ã§ããç»åãšã¬ã€ã€ãŒãæåã«äœãããšã«ããŸãã 4 è¡ç®ã§ã¯æ°ããç»åãäœã£ãŠããŸããããã·ãŒãžã£ãã©ãŠã¶ã§ gimp-image-new ãèŠãŠã¿ããšãå ¥åã« width ãš height ãš type ãå¿ èŠãšãªã£ãŠããŸããåºåã®è¿ãå€ã¯ image ãšãªã£ãŠããŸããã€ãŸãæ°ããäœæããç»åã®å¹ ãšé«ããšçš®é¡ (ç»åã®ã¢ãŒã: RGBãã°ã¬ãŒã¹ã±ãŒã«ãã€ã³ããã¯ã¹) ãäžããŠããã°ããã®æ¡ä»¶ã§äœãããç»åãè¿ã£ãŠãããšããããã§ããç»åã®çš®é¡ã¯ RGB ãªã®ã§ãRGB ãæå®ããŠãããŸãã gimp-image-new 颿°ãåŒã³åºããæã®è¿ãå€ã¯ãªã¹ãã«ãªã£ãŠããã®ã§ããã®å é ã car ã§åãåºããŠãããŸããããã§æ°ããäœæããç»åã® ID ãæã«å ¥ããŸãããã®ç»å ID ã img ã«å ¥ããŠãããŸããããã§ img ãæ°ããäœæããç»åãæãããšã«ãªããŸãã ç»åãäœæããã ãã§ã¯ãŸã ç»åã®äžã«ã¬ã€ã€ãŒãååšããªãã®ã§ã次ã¯ã¬ã€ã€ãŒãæ°ããäœããŸãã5 è¡ç®ã® gimp-layer-new 颿°ã¯æ²¢å±±ã®å ¥åãå¿ èŠã§ãããããŠåºåãšããŠæ°ããäœæããã¬ã€ã€ãŒãè¿ããŸãã image ã¯ãã©ã®ç»åã«ã¬ã€ã€ãŒãäœãã®ããæå®ããŸããããã§ã¯äœã£ãã°ããã® img ã䜿ããŸããwidth ãš height ã¯ã¬ã€ã€ãŒã®å¹ ãšé«ãã§ããç»åã®æã®å¹ ãšé«ããšåããªã®ã§ããŠãŒã¶ãŒãæå®ãã width ãš height ã«ãªããŸããtype ã¯ã¬ã€ã€ãŒã®çš®é¡ã§ããã¢ã«ãã¡ãã£ã³ãã« (A) ç¡ãã® RGB ã€ã¡ãŒãžã§ããã®ã§ãRGB-IMAGE ãæå®ããŠããŸãã name ã¯ã¬ã€ã€ãŒã®ååã§ãæååãªã®ã§ "" ã§å·Šå³ãå²ã¿ãŸããopacity ã¯ã¬ã€ã€ãŒã®äžéæåºŠã§ãã¬ã€ã€ãŒãã€ã¢ãã°ã«ããã¬ã€ã€ãŒäžéæåºŠã®ã¹ã©ã€ããŒã衚ããã®ãšåãã§ããmode ã¯ã¬ã€ã€ãŒã®çµåã¢ãŒãã§ãã¬ã€ã€ãŒãã€ã¢ãã°ã«ããã¬ã€ã€ãŒã¢ãŒãã«çžåœããŸããæšæºã¢ãŒã㯠NORMAL-MODE ãšæå®ããŸãã ãã®ãããªæå®ã§äœæãããã¬ã€ã€ãŒã®çµæã¯ããã¯ãããããªã¹ãã§è¿ã£ãŠããã®ã§ car ã§å é ãåãåºããŠããå¿ èŠããããŸãããããŠåãåºããã¬ã€ã€ãŒ ID ã layer ã«å ¥ããŠããŸããããã§ layer ãæ°ããäœæããã¬ã€ã€ãŒãæãããã«ãªããŸããã ååŠç 9| (gimp-context-push) 9 è¡ç®ã§ã¯ããã®æç¹ã§ã®ã³ã³ããã¹ãã Gimp ã«èšæ¶ãããŠããŸãããã³ã³ããã¹ããèšæ¶ããããšããã®ã¯ãäŸãã°ãã®æã«äœ¿çšäžã®ãã©ã·ããã¿ãŒã³ãæç»è²/èæ¯è²ãªã©ãèšæ¶ãããšããããšã§ããæ¬¡ã® 11 è¡ç®ã®åŠçã§èæ¯è²ã倿ŽããŠããŸãã®ã§ã倿Žåã®ç¶æ ãèšé²ããŠããããã®ã§ãã ç»åã«ã¬ã€ã€ãŒãå ¥ãã 11| (gimp-context-set-background bg-color) 12| (gimp-drawable-fill layer BG-IMAGE-FILL) 13| (gimp-image-add-layer img layer -1) 11 è¡ç®ã¯èæ¯è²ã®è²ã倿ŽããŠããŸããbg-color ã¯ã¹ã¯ãªãããå®è¡ããæã«ãŠãŒã¶ãŒãæå®ããè²ã§ãããã bg-color ã«äœãå ¥ã£ãŠããã®ãå¿ããŠããŸã£ããããã®ã¹ã¯ãªããã®èª¬æã®æåã®æ¹ã«æ»ããŸãããã 12 è¡ç®ã® gimp-drawable-fill ã§ã¯ãåŒæ°ãšããŠäžãã layer ã 11 è¡ç®ã§ã»ããããè²ã® bg-color ã§å¡ãäœæ¥ãè¡ã£ãŠããŸãããã®äœæ¥ã¯èæ¯ã®è²ãã»ãããããšããæå³ã ãã§ã¯ãªããã¬ã€ã€ãŒã®ç¶æ ãåæåãããšããæå³ãæã£ãŠããŸãããªãããšãããšãå€§æµæ°ããäœæããã¬ã€ã€ãŒã¯åæåãããŠããªããŠã©ã³ãã ãªæš¡æ§ãæãããŠããããã§ãããã®ããæ°èŠã¬ã€ã€ãŒãäœæããæã«ã¯ gimp-drawable-fill ã®åŒã³åºãã§ã¬ã€ã€ãŒãåæåããŠããå¿ èŠããããŸããè²ã§å¡ãã€ã¶ãã®ã§ã¯ãªããéæ*2ã§å¡ãã€ã¶ãããå Žåã«ã¯ TRANS-IMAGE-FILL ãå¡ãã€ã¶ãã¿ã€ãã«äžããŠãããŸãã ãã®æç¹ã§ã¯ãŸã ç»åã«ã¬ã€ã€ãŒã¯ãããŸããããã®ãã 13 è¡ç®ã§å®éã«ç»åã«ã¬ã€ã€ãŒã远å ããŠããŸããgimp-image-add-layer ã®èª¬æã¯æåã®ã¹ã¯ãªããã§ããŠããã®ã§ããã¡ããåç §ããŠäžããã åŸåŠç 15| (gimp-context-pop) 16| (gimp-display-new img) 17| (gimp-displays-flush) 18| )) çŸåšã®èæ¯è²ã 1ïŒ è¡ç®ã§å€æŽããŠããŸã£ãããã¹ã¯ãªãããåŒã³åºãåãšã¯éã£ãŠãããããããŸããã15 è¡ç®ã§ã¯ããã 9 è¡ç®ã§ gimp-context-push ããæã®ç¶æ ã«å ã«æ»ããŠããŸãããã®ããã«ã¹ã¯ãªããã®éäžã§å€åããŠããŸã£ãç¶æ ãã§ããã ãã¹ã¯ãªããã®å®è¡åã®ç¶æ ã«æ»ããŠããããšããå§ãã§ãã 16 è¡ç®ã§ã¯äœæããç»åããã£ã¹ãã¬ã€ã«åºçŸãããŠããŸããç»åãæ°ããäœæããŠã gimp-display-new ã䜿ããŸã§ã¯å®éã®ãã£ã¹ãã¬ã€ã«ã¯è¡šç€ºãããŸãããããã¯ã¬ã€ã€ãŒãäœæããŠã gimp-image-add-layer ã䜿ããŸã§ã¯å®éã«ç»åã«ã¬ã€ã€ãŒãçŸããªãããšãšåãã§ããæ°èŠç»åãäœæããã¿ã€ãã®ã¹ã¯ãªããã§ã¯ãæ°èŠç»åã®è¡šç€ºã®ããã«ãã®åŒã³åºããå¿ èŠã«ãªããŸãã 17 è¡ç®ã¯ãã£ã¹ãã¬ã€ã®æŽæ°ã§ãã18 è¡ç®ã§ (let* ãš (define ã§å§ãŸã£ãçµããã®æ¬åŒ§ã®äºã€ããããŸãã 3.5 ããããã·ã£ããŠæåãäœãã¹ã¯ãªãã
äžã®äºã€ã®ã¹ã¯ãªããã¯ãç»åäŸååã¹ã¯ãªãããšç¬ç«å®è¡åã¹ã¯ãªããã®äŸãšããŠåºæ¬çãªéšåããæã£ãŠããªãéåžžã«ç°¡åãªã¹ã¯ãªããã§ããããããããã§ã¯ãäžèŸã«ãå®çšçã§ãããšã¯èšããŸãããããå°ãå®éã«äœ¿ããã¹ã¯ãªãããšããŠãããããã·ã£ããŠãäœãã¹ã¯ãªãããäœããŸãããããç°¡åãªã¹ã¯ãªããã§ããããããã§ããã°ããã¹ã¯ãªããã®æžãæ¹ã®åºæ¬ã¯ãã¹ã¿ãŒããããšã«ãªãã®ã§ãä»ã®ã¹ã¯ãªãããæžãããšãã§ããããã«ãªããŸãã 3.5.1 æé ã®ç¢ºèª
ãŸãã¹ã¯ãªããã®åã«ããã®ãããªæé ã§ããããã·ã£ããŠæåãäœãã®ãã Gimp ã§ãã£ãŠã¿ãŸãããããå ã«ã¹ã¯ãªãããæžãèµ·ããããã«ãããšãã¹ã¯ãªããäœæã®æµããåãã£ãŠå¹çãè¯ããªããŸãã
3.5.2 ããããã·ã£ããŠæåã®ã¹ã¯ãªãã
ãã®ã¹ã¯ãªããäžã®ã»ãã³ãã³ ";" ã§å§ãŸãè¡ã¯ã³ã¡ã³ãæ±ãã«ãªããã¹ã¯ãªããã®å®è¡ã«ã¯åœ±é¿ãåãŒããŸãããã¹ã¯ãªãããããçšåºŠé·ããªã£ããããã®éšåãäœã®åŠçããã£ãŠããã®ããã³ã¡ã³ãè¡ãšããŠæžããŠãããšãåŸã§ã¹ã¯ãªãããèŠããšãã«åããããããªããŸãã ;; ããããã·ã£ããŠãäœãã¹ã¯ãªãã (define (script-fu-drop-shadow-text text size font bg-color text-color) ;; 倿°å®£èš (let* ((img (car (gimp-image-new 256 256 RGB))) (text-layer 0) (width 0) (height 0) (bg-layer 0) (shadow-layer 0)) ;; ååŠç (gimp-image-undo-disable img) (gimp-context-push) ;; ããã¹ãã¬ã€ã€ãŒäœã (gimp-context-set-foreground text-color) (set! text-layer (car (gimp-text-fontname img -1 0 0 text 20 TRUE size PIXELS font))) ;; èæ¯ã¬ã€ã€ãŒäœã (set! width (car (gimp-drawable-width text-layer))) (set! height (car (gimp-drawable-height text-layer))) (gimp-image-resize img width height 0 0) (set! bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE))) (gimp-image-add-layer img bg-layer 1) (gimp-context-set-background bg-color) (gimp-edit-clear bg-layer) ;; ããããã·ã£ããŠã®äœæ (gimp-context-set-foreground '(0 0 0)) (set! shadow-layer (car (gimp-text-fontname img -1 0 0 text 20 TRUE size PIXELS font))) (gimp-channel-ops-offset shadow-layer FALSE OFFSET-TRANSPARENT 5 5) (gimp-channel-ops-offset text-layer FALSE OFFSET-TRANSPARENT (- 5) (- 5)) (plug-in-gauss-iir2 1 img shadow-layer 20 20) (gimp-layer-set-opacity shadow-layer 75) ;; åŸåŠç (gimp-context-pop) (gimp-image-undo-enable img) (gimp-display-new img) (gimp-displays-flush) )) ;; ã¹ã¯ãªããã®ç»é² (script-fu-register "script-fu-drop-shadow-text" "Drop Shadow Text..." "Create the drop shadow text" "Iccii <iccii@hotmail.com>" "Iccii" "Jun, 2001/May, 2009" "" SF-STRING "Text" "Script-Fu!" SF-ADJUSTMENT "Font size (pixels)" '(100 2 1000 1 10 0 1) SF-FONT "Font" "Dragonwick" SF-COLOR "Background color" '(255 255 255) SF-COLOR "Text color" '(223 8 8)) (script-fu-menu-register "script-fu-drop-shadow-text" "<Image>/Filters/Test") ãã®ã¹ã¯ãªãããåãããšäžã®ãããªãã€ã¢ãã°ãåºãŠããŸããå çšãããæåãšãã©ã³ããéžæãããããã¯ã¹ãå¢ããŠããŸãããã¹ã¯ãªããã®æ©èœãè²ã ãšå¢ããŠãã£ãŠãããæè»ã«ãªã£ãŠããŸãããã 3.5.3 äžã§ãã£ãŠããããš
ç»é²ãšå§ãŸã 1| ;; ããããã·ã£ããŠãäœãã¹ã¯ãªãã 2| (define (script-fu-drop-shadow-text text size font bg-color text-color) 47| ;; ã¹ã¯ãªããã®ç»é² 48| (script-fu-register 49| "script-fu-drop-shadow-text" 50| "Drop Shadow Text.." 51| "Create the drop shadow text" 52| "Iccii <iccii@hotmail.com>" 53| "Iccii" 54| "Jun, 2001/May, 2009" 55| "" 56| SF-STRING "Text" "Script-Fu!" 57| SF-ADJUSTMENT "Font size (pixels)" '(100 2 1000 1 10 0 1) 58| SF-FONT "Font" "Dragonwick" 59| SF-COLOR "Background color" '(255 255 255) 60| SF-COLOR "Text color" '(223 8 8)) 61| 62| (script-fu-menu-register "script-fu-drop-shadow-text" 63| "<Image>/Filters/Test") æåã«ã¹ã¯ãªããã®ç»é²ãšãæ¬äœã®åŒã³åºãã®ãšãããã説æããŸãããã®ã¹ã¯ãªããã®é¢æ°å㯠script-fu-drop-shadow-text ã§ããå ¥åããã¯ã¹ãå¢ããŠããŸãããåºæ¬çã«ã¯ãããŸã§ãšäœãå€ããã¯ãããŸããã ããã§å ¥åããã¯ã¹ã§ãŠãŒã¶ãŒã«æå®ãããŠããå€ã¯ãããŽãšããŠäœ¿çšããæåãš (56 è¡ç®)ãæåã®å€§ãããš (57 è¡ç®)ããã©ã³ãã®çš®é¡ãš (58 è¡ç®)ãèæ¯ãšæåã®è²ã§ã (59ã60 è¡ç®)ãããã 2 è¡ç®ã® define ã®ãšããã§ãããã text size font bg-color text-color ã®åŒæ°ãšããŠã¹ã¯ãªããæ¬äœã«æž¡ããŠããŸãã 倿°å®£èš 4| ;; 倿°å®£èš 5| (let* ((img (car (gimp-image-new 256 256 RGB))) 6| (text-layer 0) 7| (width 0) 8| (height 0) 9| (bg-layer 0) 10| (shadow-layer 0)) 倿°ã¯äœ¿çšããåã«ã䜿ã倿°ã宣èšããå¿ èŠããããŸãã宣èšã®ãšãã«åæå€ãäžããããå Žåã¯å ã«äžããŠãããåæå€ãäžããããªãå Žå㯠0 ãä»®ä»£å ¥ããŠãããŠ*3ãåŸã§ set! æ§æã䜿çšããŠå€ãä»£å ¥ãããšããæ¹æ³ã䜿ããŸãã æåã«ç»åãäœããŸããRGB ã¢ãŒãã§ã256x256 ã®å€§ããã«ããŸããããã§å€§ãããæã¡æ±ºãããŠããŸã£ãŠããã®ã¯ãåŸã§ç»åã®å€§ãã (ãã£ã³ãã¹ãµã€ãº) ãå倿Žããããã§ãããã®æç¹ã§ã¯ç»å img ãå ã«äœã£ãŠããŸãå¿ èŠããããŸãã ãªãå ã«ç»å img ãäœã£ãŠããŸãå¿ èŠãããããšããã°ãgimp-text-fontname ã§æåã®ã¬ã€ã€ãŒãäœãã«ã¯ãæåã¬ã€ã€ãŒãå ¥ããå Žæãšãªãç»åãå ã«ååšããŠããå¿ èŠãããããã§ãã ååŠç 12| ;; ååŠç 13| (gimp-image-undo-disable img) 14| (gimp-context-push) 13 è¡ç®ã¯ãã¢ã³ãã¥ã¹ã¿ãã¯ãç¡å¹ã«ãã颿°ã§ããããã«ã€ããŠã¯åŸè¿°ããŸãã14 è¡ç®ã¯ã³ã³ããã¹ãã®ä¿åãè¡ã£ãŠããŸãã ç»åãšããŽã¬ã€ã€ãŒäœã 16| ;; ããã¹ãäœã 17| (gimp-context-set-foreground text-color) 18| (set! text-layer (car (gimp-text-fontname img -1 0 0 text 20 19| TRUE size PIXELS font))) gimp-text-fontname ãåŒã³åºããšããã®æç¹ã§ã®æç»è²ã䜿ã£ãŠæåã¬ã€ã€ãŒãäœããŸããæåãäœãåã«æç»è²ã®è²ãæå®ããæåã®è²ã«å€æŽããŠãããªããã°ãªããªãã®ã§ãçŽåã® 17 è¡ç®ã§ gimp-context-set-foreground ãåŒã³åºããŠããŸãã gimp-text-fontname 颿°ã¯æå®ãã倧ããã®ãã©ã³ã (ããã§ã¯ size) ã§æåå text ã®æåãå ¥ã£ãã¬ã€ã€ãŒãäœããŸããããã§ã¯äžäžå·Šå³ã« 20 ãã¯ã»ã«ã ãã®äœçœããããããªå€§ãããèªåçã«èšç®ããŠã¬ã€ã€ãŒãäœã£ãŠãããŸãããã®ãããã©ã³ããµã€ãºã倧ããããŠãåžžã« 20 ãã¯ã»ã«ã®äœçœãããããã¹ãã¬ã€ã€ãŒãã§ããŸãã ãªãµã€ãºãšèæ¯ã¬ã€ã€ãŒäœã 21| ;; èæ¯ã¬ã€ã€ãŒäœã 22| (set! width (car (gimp-drawable-width text-layer))) 23| (set! height (car (gimp-drawable-height text-layer))) 24| (gimp-image-resize img width height 0 0) 25| (set! bg-layer (car (gimp-layer-new img width height RGB-IMAGE 26| "Background" 100 NORMAL-MODE))) 27| (gimp-image-add-layer img bg-layer 1) 28| (gimp-context-set-background bg-color) 29| (gimp-edit-clear bg-layer) ãã®æç¹ã§ç»åã«ã¯ããã¹ãã¬ã€ã€ãŒãååšããã®ã§ãããç»åã®å¢çã®å€§ãããšæåã¬ã€ã€ãŒã®å¢çã®å€§ããã¯äžèŽããŠããŸãããæåã¬ã€ã€ãŒã®å¢çã®å€§ãããæ±ããŠãç»åã®å€§ãããæåã¬ã€ã€ãŒã®å€§ããã«åãããªããã°ãªããŸãããgimp-drawable-width/height ã§ããã¢ãã«ã®å€§ãããæ±ããããšãã§ããŸãããã㊠gimp-image-resize ã§ç»åã®å€§ãããå倿ŽããŠããŸãã ãã®ããã«ãããã¹ãã®å€§ããã«å¿ãããµã€ãºã®ç»åãäœãããå Žåã¯ãgimp-image-new ã§ä»»æã®å€§ããã®ç»åãä»®ã«äœã£ãŠãã â ããã¹ãã¬ã€ã€ãŒãäœã£ãŠãµã€ãºãèªåäœæããŠããã â ããã¹ãã¬ã€ã€ãŒã®å€§ããã調ã¹ãŠ â gimp-image-resize ã§ç»åã®å€§ãããåå€æŽ ãšããäžé£ã®æµãã¯å®çªãªã®ã§èŠããŠãããšããã§ãã ãŸã ç»åã«ã¯æåã¬ã€ã€ãŒã ãããååšãããããããã·ã£ããŠã®ã¬ã€ã€ãŒãšèæ¯ã¬ã€ã€ãŒãååšããŠããŸããããã®ããèæ¯ã¬ã€ã€ãŒããäœãããšã«ããŸããããgimp-image-add-layer ã§èæ¯ã¬ã€ã€ãŒã远å ããå Žæã¯äžçªäžã§ããã position ã«ã¯ 1 ãäžããŠãããŸãã ããããã·ã£ããŠã¬ã€ã€ãŒäœã 31| ;; ããããã·ã£ããŠã®äœæ 32| (gimp-context-set-foreground '(0 0 0)) 33| (set! shadow-layer (car (gimp-text-fontname img -1 0 0 text 20 34| TRUE size PIXELS font))) 35| (gimp-channel-ops-offset shadow-layer FALSE OFFSET-TRANSPARENT 5 5) 36| (gimp-channel-ops-offset text-layer FALSE OFFSET-TRANSPARENT (- 5) (- 5)) 37| (plug-in-gauss-iir2 1 img shadow-layer 20 20) 38| (gimp-layer-set-opacity shadow-layer 75) ããããã·ã£ããŠã®ã¬ã€ã€ãŒãäœãæ¹æ³ã¯ããã€ãèããããŸãããä»åã¯æåã¬ã€ã€ãŒãšå šãåãããã«ã㊠(äœãè²ã ãã¯åœ±ã£ãœãé»ã«å€ããŠ) äœãããšã«ããŸããããããããšæåã¬ã€ã€ãŒãšåãå Žæã«éãªãããã«ããŠã·ã£ããŠã¬ã€ã€ãŒãã§ããŸãã æåãšåœ±ãããã¿ãªãšéãªã£ãŠããã®ã¯ãŸããã®ã§ãgimp-channel-ops-offset ã§ããããå³äžãšå·Šäžã«å°ãã ãããããŠè·é¢ãäœããŸããããããŠã·ã£ããŠã¬ã€ã€ãŒã«ã¬ãŠã·ã¢ã³ãŒãã (IIR) ããããŸãã (37 è¡ç®)ããã®ç¶æ ã§ã¯ãŸã ã·ã£ããŠãã¯ãããªããããŠããã®ã§ãã¬ã€ã€ãŒã®äžéæåºŠã 75% ã«äžããŠãããŸãã (38 è¡ç®)ã åŸåŠç 40| ;; åŸåŠç 41| (gimp-context-pop) 42| (gimp-image-undo-enable img) 43| (gimp-display-new img) 44| (gimp-displays-flush) 45| )) åŸåŠçã¯å€§äœã©ã®ã¹ã¯ãªããã§ãããã»ã©å€ãããªãããã§ããã³ã³ããã¹ãã®ç¶æ ãã¹ã¯ãªããå®è¡åã«æ»ããŠããã£ã¹ãã¬ã€ãæŽæ°ããŸãã 3.5.4 ã¢ã³ãã¥
ããæ¬æ Œçãªã¹ã¯ãªãããæžããªããã¢ã³ãã¥åŠçã«ãçæããããã«ããŸããããä»åã®ã¹ã¯ãªããã§ã¢ã³ãã¥åŠçãè¡ã£ãŠããã®ã¯ãã®äºè¡ã§ãã 13| (gimp-image-undo-disable img) 42| (gimp-image-undo-enable img) ããã¯ç»å img ã®åŠçãã¢ã³ãã¥ã¹ã¿ãã¯ã«è¿œå ããªã/ãããšãããã®ã§ããã¯ããã«ã¢ã³ãã¥ãç¡å¹ã«ããåŸã§æå¹ã«ããŠããŸããã€ãŸãã13 è¡ç®ã® gimp-image-unod-disable ãã 42 è¡ç®ã® gimp-image-undo-enable ã§å²ãŸãããšãããŸã§ã®åŠçãã¢ã³ãã¥ãããªããšããããšã§ãã ãããã®ã¢ã³ãã¥åŠçãè¡ããªããã°ãã¹ã¯ãªãããå®è¡ããåŸã®ç»åã§ã¢ã³ãã¥æäœ (Ctrl-Z) ãããæã«ã¯ãäžååã®åŠçã¥ã€ç»åã®ç¶æ ãæ»ã£ãŠãããŸããéåžžããã¯å¥œãŸããããšã§ã¯ãããŸããããã®ããã¹ã¯ãªããã®å®è¡äžã«ã¯ã¢ã³ãã¥ãã§ããªãããã«ããŠããã®ã§ãã ããããããã²ãšãŸãšãŸãã®åŠçãäžåºŠã®ã¢ã³ãã¥æäœã§è¡ããããšããå ŽåããããŸããã¢ã³ãã¥æäœã«ãã£ãŠç»åã®ããç¶æ ã«æ»ããããããªæã§ãããã®ããã®é¢æ°ãçšæãããŠããŸãã
ããã¯ç»å img ã«ãã㊠gimp-image-undo-group-start ãã gimp-image-undo-group-end ãŸã§ã«è¡ã£ãåŠçãäžåã®ã¢ã³ãã¥æäœã§è¡ããããã«ã°ã«ãŒãåãããã®ã§ããã€ãŸãããã®éã«æãŸããåŠçã¯äžåã®åŠçãšããŠã¢ã³ãã¥ã¹ã¿ãã¯ã«åããããã®ã§ããã¢ã³ã㥠(Ctrl-Z) ãããš gimp-image-undo-group-start ãåŒã³åºããæç¹ã«æ»ãããšãã§ããŸãã 3.5.5 ãã©ã°ã€ã³ã®åŒã³åºãæ¹æ³
ãããŸã§ã®ã¹ã¯ãªããã®äœæ¥ã§ã¯ãã¹ãŠ GIMP æ¬äœã§çšæãããŠãã颿°ã ãã䜿ã£ãŠããŸãããã37 è¡ç®ã§ã¯åã㊠plug-in-gauss-iir2 ãã©ã°ã€ã³ãåŒã³åºããŠããŸãããã©ã°ã€ã³ã¯ GIMP æ¬äœãšã¯å¥ã®ããã°ã©ã ã§ããããã©ã°ã€ã³ãå©çšããå Žåã GIMP æ¬äœãæäŸããŠãã颿°ãšã»ãšãã©åãããã«å©çšããããšãã§ããŸãã ãã©ã°ã€ã³ãåŒã³åºãå Žåã«ãããŸã§ãšéãç¹ã¯ãã€ã³ã¿ã©ã¯ãã£ãã«åŒã³åºãã®ããéã€ã³ã¿ã©ã¯ãã£ãã«åŒã³åºãã®ããšããéãã§ãã
éåžžãã©ã°ã€ã³ãåŒã³åºããšãã«ã¯éã€ã³ã¿ã©ã¯ãã£ãã¢ãŒããå©çšããã®ãäžè¬çã§ããã®ãããã¡ããšãã©ã¡ãŒã¿ãäžããŠããå¿
èŠããããŸãã ãã©ã°ã€ã³ãåŒã³åºããšãã®äžè¬çãªæžåŒ:
run-mode ãã€ã³ã¿ã©ã¯ãã£ãã¢ãŒãã§åŒã³åºãã®ãã©ããã§ãimageãdawableãã«ç¶ããŠåŒæ°ãããã€ãç¶ãå Žåãå€ãã§ããã©ã®åŒæ°ãå¿ èŠãªã®ããããã·ãŒãžã£ãã©ãŠã¶ã§ãã£ãããšç¢ºèªããŠãããŸãããã 3.6 ã¹ã¯ãªããã®çºå±
ä»åã®ããããã·ã£ããŠæåã®ã¹ã¯ãªããã¯ãããã»ã©è¯ããã®ã§ã¯ãããŸãããæåã®å€§ãããããã©ã«ãããã倧ããããæãæåãšæ¯ã¹ãŠåœ±ã®ãã©ã³ã¹ãæªããªã£ãŠããŸããŸããèæ¯ãšæåã®è²ãäžè²ã¥ã€ãšããã®ãå調ã§ããã ã·ã£ããŠã¬ã€ã€ãŒãè²ã ãšçްãã調ç¯ããããšãã§ããããã«ããããæåãèæ¯ã«ã°ã©ããŒã·ã§ã³ããã¿ãŒã³å¡ããè¡ããããã«ãçã®å·¥å€«ã§ã¹ã¯ãªãããçºå±ãããŠã¿ãŠäžãããããã§çºå±äŸãæžãããšãã§ããŸãããããã¯ããªããžã®å®¿é¡ãšããŠãããŸããæ¯éææŠããŠã¿ãŠäžããã ã°ã©ããŒã·ã§ã³ããã¿ãŒã³ã䜿ã£ãæã«ã¯ãè²ã倿Žããæã«ãã£ãããã«ãã¹ã¯ãªããã®å®è¡ã®ååŸã§ã°ã©ããŒã·ã§ã³ããã¿ãŒã³ãå ã«æ»ãããã«ããŠã¿ãŠäžãããããã»ã©é£ããã¯ãªããšæããŸãã |