gpt4 book ai didi

python - GIMP Python - 用颜色填充路径/矢量

转载 作者:行者123 更新时间:2023-12-01 01:27:47 25 4
gpt4 key购买 nike

我正在尝试开发一个可以在打开的 SVG 文件上运行的脚本。我想迭代所有路径并用任意颜色填充路径(稍后我将替换这部分代码)。第一阶段只是迭代路径,我似乎不知道如何做到这一点。我的代码如下 - 为什么我没有看到任何路径被迭代?

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from gimpfu import *

def plugin_main(image, layer, path):
vectors_count, vectors = pdb.gimp_image_get_vectors(image)
for n in vectors:
pdb.gimp_image_select_item(image,CHANNEL-OP-REPLACE,n)
foreground = pdb.gimp_context_get_foreground()
pdb.gimp_edit_fill(image.layers[0], foreground)

register(
"create_polygon_art",
"Fills all the paths with the average color within path",
"Fills all the paths with the average color within path",
"Bryton Pilling",
"Bryton Pilling",
"2018",
"<Image>/Filters/Fill all paths with average color",
"RGB*, GRAY*",
[],
[],
plugin_main
)

main()

我还尝试了通过谷歌搜索找到的许多不同方法,包括使用更简单的迭代方法,例如:

for v in gimp.Vectors

但无论我如何尝试,我似乎都无法获得路径迭代的证据。

我在 Windows 10 64 位上使用 gimp 2.10.6。

最佳答案

这是一个陷阱... pdb.gimp_image_get_vectors(image) 返回路径的整数 ID 列表,但后面的调用需要一个 gimp.Vectors 对象。

image.vectors 确实是 gimp.Vectors 的列表,您可以使用

迭代所有路径
for vector in image.vectors:

更多问题:

  • 您在 register() 中声明了两个参数,但在您的函数中声明了三个参数。实际上,您不需要路径参数,因为无论如何您都会迭代它们。
  • 函数的图层参数是调用插件时的事件图层,通常是您要绘制的图层
  • gimp-edit-fill 采用颜色源而不是颜色。当您进一步编写代码时,您将必须设置前景色,并推送/弹出上下文
  • CHANNEL-OP-REPLACE 不是有效的 Python 符号,在 Python 中您应该使用 CHANNEL_OP_REPLACE(带下划线)

Python脚本的两个集合herethere .

如果您在 Windows 下,一些调试脚本的提示 here

经过修复的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from gimpfu import *

def plugin_main(image, layer):
for p in image.vectors:
pdb.gimp_image_select_item(image,CHANNEL_OP_REPLACE,p)
pdb.gimp_edit_fill(layer, FOREGROUND_FILL)

register(
"create_polygon_art",
"Fills all the paths with the average color within path",
"Fills all the paths with the average color within path",
"Bryton Pilling",
"Bryton Pilling",
"2018",
"<Image>/Test/Fill all paths with average color",
"RGB*, GRAY*",
[],
[],
plugin_main
)

main()

您可以通过绘制“笔画”来使代码更加用户友好(这样您就可以拥有包含多个笔画的一条路径)。如果您想要对笔画进行单独选择,可以将它们复制到临时路径。可以在上面集合中的一些脚本中找到此代码。

关于python - GIMP Python - 用颜色填充路径/矢量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com