代码之家  ›  专栏  ›  技术社区  ›  Akash Agarwal

python fu gimp获取项目列表

  •  0
  • Akash Agarwal  · 技术社区  · 7 年前

    如何使用python fu获取图像中的项目列表?我尝试在python过程浏览器和google中搜索类似的函数,但找不到任何函数。(我的最终目标是在图层上选择一个文本项并将其转换为路径)

    编辑-在MacOS Mojave上使用Gimp版本2.8.2

    1 回复  |  直到 7 年前
        1
  •  2
  •   xenoid    7 年前

    一般来说,你不会列出“项目”。可以使用pdb列出层、通道或路径:

    for lid in pdb.gimp_image_get_layers(image)
    for cid in pdb.gimp_image_get_channels(image)
    for vid in pdb.gimp_image_get_vectors(image)
    

    或图像对象的属性:

    for l in image.layers
    for c in image.channels
    for v in image.vectors
    

    pdb调用返回整数项ID(使用 gimp._id2drawable(id) / gimp._id2vectors(id) 获取对象),而图像属性是 gimp.Layer / gimp.Channel / gimp.Vector 对象(因此使用起来更简单)。

    要判断层是否为文本层,必须使用PDB调用: pdb.gimp_item_is_text_layer(layer)

    您可以这样迭代文本层

    for textlayer in [l for l in image.layers if pdb.gimp_item_is_text_layer(l)]`
    

    要从文本层获取路径,请执行以下操作:

    path=pdb.gimp_vectors_new_from_text_layer(image,layer)
    

    许多示例python脚本 here 还有一些更专业的路径 here .