gimp用python画向量笔记20220827

gimp虽有python功能,十分强大,无奈说明不足,官网说明太少,
只能在python内用dir(),help等自己探索.
在python窗口的Browser中可以找到许多现成的基本功能,大多数都可以用.

当然我们可以自己写代码,只是因为代码说明太少,不好写.
首先大概理解一下gimp的结构,从help(gimp)可以知道,
gimp下面有个Image类,代表被编辑的图像,有多个图像的话可以用
gimp.image_list()来获取,如果只有一个,那么就是gimp.image_list()[0]

接下来是向量vectors了,一个image下有layers,channels,vectors,
分别对应编辑图像的图床,通道(不含RGB通道,只含自己新建的通道),路径
比如这样:
image = gimp.image_list()[0] # 获取图像
layer = image.layers[0] # 获取图像的第一个图层
channels = image.channels # 如没有自建通道,则是一个空的列表[]
vectors = image.vectors # 路径表,如没有路径依然是空[]

如果新建一个路径,然后执行:
vector = image.vectors[0]
就能得到该路径了.
路径里面的每一条路线被称为一个stroke,从python窗口的Browser中找关于vector或
stroke的函数,可以找到各种生成路线的函数.
其中:
pdb.gimp_vectors_stroke_new_from_points(vectors, type, num_points, controlpoints, closed)
功能最完整,可用于生成自己设定的路线.只是参数比较复杂.
下面详细说明一下,也可以看出这个gimp的路径功能是如何设定的.

vectors参数,其实应该叫vector更好,因为只是一个路径,表示新建路线所在的路径,
按上面的代码直接代入vector就行了.
type参数,只能输入0,因为按说明这是为了支持以后的变化,目前只能是0.
num_points和controlpoints这两个参数最坑人!作为指定线路点的参数,它们的设定
与一般人的理解不一样!
在gimp的路径规则中,一个点有6个参数构成,记作x0,y0,x1,y1,x,y
最后的x,y才是点的坐标,前面的是贝塞尔曲线的前后控制点的坐标.
一个点是6个参数,那么3个点就是18个参数,全部并列在一个表当中作为controlpoints,
看着令人非常头晕.
而num_points,则是controlpoints的长度,即18.这也是令人匪夷所思.
最后的参数closed是0或1,0表示路线不闭合,1表示闭合.

虽说这个pdb.gimp_vectors_stroke_new_from_points令人挺头晕的...
但总归是实现了完全自定义路线的功能.
还有些别的基础函数,不过我觉得有上面这个完整版就够了.
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值