如何从(scheme function)gimp图像列表中识别gimp中最新选择的图像



如何从gimp图像列表中识别gimp中最新选择的图像?

gimp图像列表返回一个列表,其中图像的数量作为第一元素,图像id的矢量作为第二元素。

如果有多个图像,如何找到最后一个聚焦的图像?

您没有。列表中的顺序是打开图像的相反顺序,通常是图像选项卡上的相反顺序。

实际情况是,如果你编写的脚本应该影响打开的图像,你应该把它放在"菜单中——这样,GIMP就会"免费"地将活动图像和活动绘图作为第一个参数传递给你(也就是说,不需要用户选择它们)。

在交互模式下,即在脚本之外,您只需检查标题栏上的图像ID。

注册脚本时需要定义图像和可绘制区域。例如:

(script-fu-register "script-fu-some-handy-function"
_"_Handy function..."
_"Does something handy for your image."
"Michael T <username@domain.com>"
"Michael T"
"24/09/2022"
"*"
SF-IMAGE       "Input image" 0
SF-DRAWABLE    "Input drawable" 0
)

然后,当你需要使用图像时,你只需键入";图像";以使用引用的图像。

(define (script-fu-some-handy-function image drawable)
    (define width (car(gimp-image-width image)))
    (define height (car(gimp-image-height image)))  
    (define newLayer (gimp-layer-new image width height 1 "Black" 100 0))
    (define newLayerIndex (car newLayer))
    (gimp-image-insert-layer image newLayerIndex 0 0)
    (gimp-context-set-foreground '(0 0 0))
)

注意我们如何在函数定义中定义变量,否则该变量将无法在定义中工作。

最新更新