作者:wide288@LinuxSir.org 最后修改:2009-9-2
Copyright @ 2008 2009 wide288
返回主页
脚本
GIMP 中的 Script-Fu 叫做"宏"。但是它比宏的功能更加强大。所以我叫它脚本。Script-Fu 基于一种名叫“Scheme”的解释性语言并以向 GIMP 数据库使用查询函数的方式来进行工作。
我们可以用 Script-Fu 来做任何事。这里需要你的想象力。
这里不介绍很复杂的功能,因为那样和本书的步调不一至。本书的目标就是从简单开始一点点学会如果更好的使用 GIMP 来创建或处理数字图像。当然这并不是说就不讲解脚本的编程知识。如果工作需要那是可以讲的。另外由于作者水平问题,GIMP 的功能并不能全部讲解。如脚本,GIMP 并不只支持 Script-Fu, GIMP 还支持 Perl 和 Tcl。有的朋友会这两种脚本,所以学习在 GIMP 中使用它们可能会更好。但是这里我就不能帮助你们了。因为我不会用。
好了,我们开始学习吧。
Script-Fu 每一项说明都由括号括住。
函数的名字或操作符总是括号里的第一项,其它项是函数的参数。
数学操作符(如加号)也被认为是函数。如:(+ 1 3) ,表示的意思是:1 + 3
这叫做前缀表示法。
变量
let* 结构,分别给变量 a 和 b,初始化值 1 和 2。
(let* (
(a 1)
(b 2)
)
(+ a b)
)
也可以写成一行的样子,如:
(let* ( (a 1) (b 2) ) (+ a b) )
上面的变量定义是局部变量。
如果使用的是控制台窗口,就必须把它们放到一行里。
let* 的语法:
(let* (变量) 表达式)
set! 改变变量的值
set! 变量值
函数
(define (函数名 变量名称) 表达式)
例如:(define (AddXY inX inY) (+ inX inY) )
变量没有类型
函数的最后一个语句就是返回值
列表
(let* ( (x '(1 3 5)) ) x )
输出:(1 3 5)
定义列表的语法:
'(a b c)
a b c 是常数
(let*
(
(x
'("The Gimp" (1 2 3) ("is" "great" ()) )
)
) x
)
输出是:
("The Gimp" (1 2 3) ("is" "great" ()))
cons 添加一个元素作为列表的头。
> (cons 1 '(2 3 4))
(1 2 3 4)
list 定义一个由常量或变量组成的列表。
> (list 5 4 3 2 1)
(5 4 3 2 1)
car 返回列表的第一个元素(列表的头),列表要求非空。
例如:
> (car '("first" 2 "third"))
"first"
cdr 返回列表的第一个元素之后的剩余部分(列表的尾),如列表中只有一个元素,返回的就是一个空列表。
例如:
> (cdr '("first" 2 "third"))
(2 "third")
> (cdr '("first"))
()
caadr 可以访问列表尾部的头部。
cddr 访问列表尾部的尾部。
自已写的脚本文件存在那里?
Linux 系统, 存在 Home/.gimp/script 下。
Windows XP 系统, 存在 C:\Documents and Settings\Administrator\.gimp-2.6\scripts 下
每一个脚本至少要定义一个函数,这个函数就是脚本的主函数。
(define (script-fu-text-box inText inFont inFontSize inTextColor))
注册函数
(script-fu-register
"script-fu-text-box" ;函数名
"<Image>/File/New/FX-Foundry/Render" ;菜单路径
"创建一个简单的文本框。"
"wide288" ;作者
"版权 2009 wide288" ;版权注释
"2009-09-02" ;创建日期
"" ;脚本工作的图像类型
SF-VALUE "Text:" "\"Text Box\"" ;文本值
SF-VALUE "Font:" "\"Charter\"" ;文本值
SF-VALUE "Font size:" "45" ;文本值
SF-COLOR "Color:" '(0 0 0) ;颜色值
)
脚本文件的扩展名为 scm 。
菜单路径是:图像窗口->文件->创建->FX-Foundry->Render->Planet render
返回主页