如何在Gimp Python-fu插件中调用pdb.gimp_pencil

时间:2014-05-20 01:00:51

标签: gimp python-fu

我正在尝试使用Gimp自动完成绘制线条的任务。

所以到目前为止,我尝试了脚本功能并没有运气。


    >>>from pprint import pprint
    >>>img = gimp.Image(200, 200, RGB)
    >>>pprint (pdb.gimp_pencil.params)
    ((16, 'drawable', 'The affected drawable'), 
     (0,
       'num-strokes',
       'Number of stroke control points (count each coordinate as 2 points) (num-strokes >= 2)'),
     (8,
       'strokes',
       'Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }'))
    >>>pdb.gimp_pencil(img, 4, [0,0,200,200] )
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    TypeError: wrong parameter type

我找不到任何在Python中为Gimp传递矢量(笔画坐标数组)的例子

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

好吧我的错误,我认为TypeError在最后一个数组参数上。碰巧img不是drawable,因此是TypeError。

你必须:

  1. 制作图片
  2. 创建图层
  3. 将图层添加到图像
  4. 将图层设置为活动
  5. 获取图像的活动可绘制
  6. 然后,只有您可以在gimp_pencil()方法中使用此drawable。

    img = gimp.Image(200, 200, RGB)
    layer = gimp.Layer(img, "Test", 200, 200, RGBA_IMAGE, 100, NORMAL_MODE)
    img.add_layer(layer, -1)
    pdb.gimp_image_set_active_layer(img, layer)
    draw = pdb.gimp_image_get_active_drawable(img)
    pdb.gimp_pencil(draw, 4, [0,0,100,100])
    disp1 = gimp.Display(img)