gimp的脚本scm一些心得记录
GIMP 2.10 图像处理脚本推荐
GIMP使用脚本使得图像处理的功能更加强大,对于一些常见操作可以通过脚本快速实现。GIMP也出来2.10版本了,比前面的2.8相比在界面和功能上都更加强大,本文推荐的插件是基于GIMP2.10的,不适用2.8,2.6版本。
gimp支持python-fu和scirpt-fu两种脚本方法,python-fu顾名思义就是用python来写;script-fu,这是一个lisp的方言sch
me。这两天用的就是scheme,所以就讲它了。
(1)脚本的下载
在下列网站下载插件脚本:
https://www.gimphelp.org/script210.html#downloads
https://www.freesion.com/article/6164276062/
(2)脚本的注册
在gimp的scripts目录下(/usr/share/gimp/2.0/scripts)新建.scm后缀的文本文件。
要注意的是不同gimp版本,可能scripts目录的位置会不一样。常见的,gimp2.8是在~/.gimp-2.8/scirpts/,而gimp2.10则是在/usr/share/gimp/2.0/scripts)或者~/.config/GIMP/2.10/scripts/这个目录下。
.scm后缀的文本文件代码格式如下:
(define
(scirpt-test ;函数名
;接下来都是变量名,要和scirpt-fu-regiser里面的变量一样(命名和顺序),变量才会正常传递
image
drawable
)
)
(scirpt-fu-register
"scirpt-test" ;函数名,scirpt-fu官方建议都以"-"连接单词这种风格命名函数
"菜单abc" ;菜单标签,这是会显示在菜单上的标签
"脚本描述" ;描述这个脚本的功能作用之类的,可以在方法浏览器查看。
"作者"
"copyright 2020巴拉巴拉" ;版权信息,也是描述性文字。
"2020/4/1" ;日期
"" ;这个我还没搞没明白它的功用,但不能少。
;接下来是些变量和默认值了,这些参数名要和函数定义里面的变量名一样,顺序也不能乱
; 参数类型 参数名 默认值
SF-IMAGE "image" 0 ;如果用了这个参数,这个必须是第一个参数。传递图片给脚本,默认是当前并正在工作的图片
SF-DRAWABLE "drawable" 0 ;如果有用SF-IMAGE,这个也必须启用,并且必须放是第二个参数。
SF-VALUE "a" "0" ;值,可以是int或string,但默认值要求必须是string.传递的若是数字,如"123",会自动识别成相应的数字类型,如"int"
SF-STRING "b" "sadf" ;字符串参数
;还有其他类型变量,可以自行查阅官方文档
)
;下面是在菜单中注册,注册成功可在菜单上找到这个脚本。
(script-fu-menu-register "script-test" "<Image>/File/test")
;问题:
当<Image>/中文菜单/test,时不能显示中文,而且保存时,会自动删除后面的字符。不知道是什么原因,造成对中文菜单不支持。
;"<Image>/File/test"是菜单路径,表示这个最终会注册到"文件"-"test"这个菜单下。
;<Image>这是必须的不可更改的,可以理解为根菜单,后面的/File/test可以是已存在的菜单,或不存在的菜单.不存在的菜单会自动创建路径。
;有些单词因为汉化原因会自动转成中文,如“file”会自动变为“文件”,但你也可以直接输入中文路径如,"<Image>/脚本/测试",则会在"脚本"-"测试"菜单中,查看到"菜单abc"
一些易忽略的点
gimp内部方法,返回的都是list,即使值只有一个。所以,使用时,可能要用car之类的方法去抽取元素。