【问题标题】:What is the error in this scheme/script-fu/gimp code?这个方案/script-fu/gimp 代码中的错误是什么?
【发布时间】:2012-08-15 00:03:16
【问题描述】:

我收到以下错误:

错误:gimp-layer-new 的参数 1 的类型无效

但据我所知,当我运行该函数时,“image”仍在范围内,并且应该设置为 gimp-image-new 的返回值,这是正确的类型。我想要的只是一个愚蠢的小动画 gif,而且我可以更快地手动执行这些操作。

(begin
 (let*
      (
           (image (gimp-image-new 512 384 1))
           (counter 0)
      )

      (while (< counter 30)
           (let*
                (
                     (layer (gimp-layer-new image 512 384 2 (string-append (string-append "frame " (number->string counter)) " (33ms)") 100 0) )
                )

                (gimp-image-add-layer image layer -1)
                (plugin-in-rgb-noise 0 image layer 0 1 0.37 0)
                (plugin-in-rgb-noise 0 image layer 0 1 0.37 0)
                (gimp-brightness-contrast layer 0 -42)
                (plugin-in-rgb-noise 0 image layer 0 1 0.37 0)
                (plug-in-deinterlace 0 image layer 1)
           )
           (set! counter (+ counter 1))
      )
      (gimp-display-new image)
 )
)

【问题讨论】:

    标签: scheme gimp script-fu


    【解决方案1】:

    试试这个:

    (begin
      (let* ((image (car (gimp-image-new 512 384 1))) ; here was the problem
             (counter 0))    
        (while (< counter 30)
               (let* ((layer
                       (gimp-layer-new
                        image 512 384 2
                        (string-append "frame " (number->string counter) " (33ms)")
                        100 0)))
                 (gimp-image-add-layer image layer -1)
                 (plugin-in-rgb-noise 0 image layer 0 1 0.37 0)
                 (plugin-in-rgb-noise 0 image layer 0 1 0.37 0)
                 (gimp-brightness-contrast layer 0 -42)
                 (plugin-in-rgb-noise 0 image layer 0 1 0.37 0)
                 (plug-in-deinterlace 0 image layer 1))
               (set! counter (+ counter 1)))
        (gimp-display-new image)))
    

    我冒昧地正确缩进了您的代码并简化了string-append 表达式,但本质上问题是您必须采用gimp-image-new 返回的值的car,根据此示例page,第 6 节。这将解决问题中报告的 Error: Invalid type for argument 1 to gimp-layer-new

    【讨论】:

    • 谢谢奥斯卡。即使在尝试之前,我也可以说这是正确的答案,因此我将其设置为已接受。感谢您的帮助。
    猜你喜欢
    • 2022-08-24
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多