script-fu无效的参数数量

时间:2014-08-04 00:20:15

标签: gimp script-fu gimpfu

自今年年初以来,我一直在使用gimp2.8。 最重要的是,我告诉你我不是英国人。 所以如果你不知道我想问你什么, 不要犹豫,向我询问详情。 我会尽量解释为易于理解。

让我解释一下我的问题。 我想创建一个像notebooke纸一样的图像, 而且我认为如果画线部分很容易 是自动化的。 为了做到这一点,我决定使用名为gimp的函数 '辫形-RECT选'并指定小高度值。

我谷歌搜索并写了一个方案文件, 但是当我从gimp的Script-Fu菜单中运行它时,

gimp向我展示了如下信息。

执行FU01-multi-rect-select时出错:

错误:(:1)

gimp-rect-select

的参数数量无效

(预期8但收到9)

我希望你能看到我的第一个剧本 - 福和 指出涉及错误的地方。

对我来说,定义了我的自定义函数 它有8个参数,而不是9个。

以下是我的代码

(define (FU01-multi-rect-select 
image 
drawable 
x1 
y1 
w 
h 
p-offset 
p-repeat
)
;definition of variables
(let* 
  (
    (X nil) 
    (Y nil) 
    (width nil) 
    (height nil) 
    (offset nil) 
    (repeat nil) 
    ;are they below necessary?
    (theLayer nil)
    (theImage nil)
  )
  ;(gimp-context-push ) 
  (gimp-image-undo-group-start image)

  ;(set! X (string->number x1))
  ;(set! Y (string->number y1))
  ;(set! width (string->number w))
  ;(set! height (string->number h))
  ;(set! offset (string->number p-offset))
  ;(set! repeat (string->number p-repeat))

  (set! X x1)
  (set! Y y1)
  (set! width w)
  (set! height h)
  (set! offset p-offset)
  (set! repeat p-repeat)

  (gimp-image-set-active-layer image drawable)

  (set! theLayer
    (car (gimp-image-get-active-layer image) )
  )

  ; select rectangle and after that, 
  ; add it to current selection
  ; multiple times that is specified with 'repeat'
  (while (> repeat 0)
    (gimp-rect-select image X Y width height 
                         CHANNEL-OP-ADD FALSE 0 0)
    (set! Y (+ Y height offset))
    (set! repeat (- repeat 1))
  )

  (gimp-image-undo-group-end image)
) ; end of let sentences

(script-fu-register "FU01-multi-rect-select" 
"<Image>/Script-Fu/Select/multi rect select" 
"add a rect selection to current selection multiple times\
each time a rect is selected it is moved\
 in y axis by the value of offset" 
"Masaaki Fujioka" 
"copy right 2014 Masaaki Fujioka" 
"August 3 2014" 
"*" 
SF-IMAGE    "SF-IMAGE"      0  
SF-DRAWABLE "SF-DRAWABLE"   0   
SF-VALUE    "start x"       "0" 
SF-VALUE    "start y"       "0" 
SF-VALUE    "width"         "0" 
SF-VALUE    "height"        "0" 
SF-VALUE    "offset"        "0" 
SF-VALUE    "repeat"        "0" 

抱歉长句, 但感谢阅读。

1 个答案:

答案 0 :(得分:1)

就像错误消息所说的那样,gimp-rect-select调用还有一个额外的参数 - 如果在&#34;模式&#34;之后检查过程浏览器上的调用规范。参数应该有一个布尔值来告诉你是否要使用羽化,另一个数字来告诉羽化量。您传递的是两个整数,而不是只需要一个数字。

此外,请注意此通话标记为&#34;已弃用&#34; - 这意味着虽然它仍然适用于gimp-2.8,但由于一系列原因,你应该调用gimp-image-select-rectangle而不是这个。 (请注意,该调用的参数不同)。