【问题标题】:How to get a layer with python in gimp?如何在 gimp 中使用 python 获取图层?
【发布时间】:2021-10-05 07:34:21
【问题描述】:

我想用 python 在 gimp 中获得一个特定的层。

我有两层的图像。 我找到了num_layers, layer_ids = pdb.gimp_image_get_layers(image)的命令

当我运行命令时,我得到了输出

num_layers = 2
layer_ids  = (5, 4)

我找到了命令layer = pdb.gimp_image_get_layer_by_name(image, name)layer = pdb.gimp_image_get_layer_by_tattoo(image, tattoo)

如何获得特定层?

【问题讨论】:

    标签: python gimp


    【解决方案1】:
    • 如果你想确定你的脚本/插件应该在哪个层工作,插件注册应该声明以 PF_IMAGE 和 PF_DRAWABLE 开头的参数。这些将在调用脚本时设置为图像和活动层。

    • 您也可以使用image.active_layer 检索活动层,但这很危险,您的插件可能已在掩码或通道上调用,通常使用以前的方法来执行此操作。在 Python-fu 控制台中尝试时,此方法很有用。

    • 如果您在脚本中创建了图层,则该图层已由 API 调用返回,因此请将其保存在变量中以供以后重用。

    • 对于特定的层,这将取决于标准,你可以

      • 按名称过滤:[l from image.layers if l.name='XXX'][0],

      • 过滤堆栈中的位置:

        • image.layers[0] 顶,
        • image.layers[-1] 用于底部的“背景”。
      • 您还可以找到第一个可见或链接的。

      但这样做通常是个坏主意。

    • 如果您想从先前的处理中检索图层,您可以“纹身”它(pdb.gimp_item_set_tattoo(item, tattoo) 其中tattoo 是您选择作为签名的整数),然后在后续处理中使用 @ 检索它987654327@)。纹身将被保存为图像的一部分,因此将在工作期间继续存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多