脚本执行顺序不正确,为什么?
|
我正在尝试为GIMP编写基本脚本,但似乎并不想正常工作。做出选择后,应该遵循以下顺序:降低活动层,将选择范围扩展2px,使用前景色进行泛洪,提高活动层。最终产品应该是顶层上我线条下方的纯色。但是使用我编写的代码,它会跳过活动层,但会在顶层而不是下一层进行填充。这是我的代码:
(define (quick-fill image drawable)
(gimp-undo-push-group-start image)
(let* ((layer (car (gimp-image-get-active-layer image))))
(gimp-selection-grow image 2)
(gimp-image-set-active-layer image (aref (cadr (gimp-image-get-layers image)) 1))
(gimp-bucket-fill drawable FG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
(gimp-image-set-active-layer image (aref (cadr (gimp-image-get-layers image)) 0)))
(gimp-undo-push-group-end image)
(gimp-displays-flush))
没有找到相关结果
已邀请:
1 个回复
琳娘
几个注意事项: 1)您永远不会在
部分中使用
变量,因此已将其删除。 2)Gimp不会在活动图层上绘制或填充或做任何事情...而是在活动可绘制对象上起作用。如果要在顶层上填充时要在其下一层上填充,则意味着您要传递顶层的drawable,因此它将填充在顶层上。 ..将活动层切换到下面的层不会更改传入的可绘制对象的值。因此,在此修改中,我在
部分中创建了一个新的
变量,在将活动层从顶层更改为其下层之后,将其初始化为当前活动的可绘制对象。这样,您将填充下面的图层的可绘制对象,而不是顶层的原始传入的可绘制对象。实际上,您根本不需要传入一个drawable参数,因为您可以从活动层中获取新的drawable(在此修改中已完成此操作)。