如何跨多个图层描边同一图层

How to stroke the same layer across multiple layers

在 gimp 中,我有大约 98 个图层。我有一条路径,我想在所有层上划过。有没有一种方法可以做到这一点而无需单独遍历每一层?

您可以使用 Python 控制台轻松完成此操作。我有几个关于如何使用它的或长或短的提示的答案 - 这是一个:https://superuser.com/questions/1067478/how-to-change-several-images-in-gimp-that-are-already-open/1067867?noredirect=1

在这种情况下,调用 gimp.image_list() 并在该列表中选择目标图像,将其分配给 image 变量后,只需调用 pdb.gimp_edit_stroke_vectors(...)对于图像上的每一层。

因此,您的整个 filters->Python-fu->Console 会话可能是:

image = gimp.image_list()[0]
for layer in image.layers:
    pdb.gimp_edit_stroke_vectors(layer, image.vectors[0])

(如果您的图像是最后打开的图像(那么它在 image_list 上的位置将为 '0' )并且如果您的路径是路径对话框中最上面的一个(也将具有 '0 '作为索引)。 您可以在 for 循环内使用对 pdb.gimp_context_set_foreground(或 ...set_brush 和 ...set_dynamics、..set_brush_size 的调用来将相应的设置更改为尽管没有更改活动工具的调用,但您在各个层中都取得了进展。使用 Python 控制台对话框底部的 "browse" 按钮了解所有可能的调用。