代码之家  ›  专栏  ›  技术社区  ›  Gyro Gearloose

如何从(方案功能)gimp图像列表中识别gimp中最新选定的图像?

  •  1
  • Gyro Gearloose  · 技术社区  · 9 年前

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

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

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

    2 回复  |  直到 9 年前
        1
  •  2
  •   jsbueno    9 年前

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

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

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

        2
  •  0
  •   MikeJT    2 年前

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

    (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
    )
    

    然后,当您需要使用图像时,只需键入“image”即可使用引用的图像。

    (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))
    )
    

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