我得到以下错误:
错误: 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)
)
)发布于 2012-08-19 22:59:40
试试这个:
(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。
https://stackoverflow.com/questions/12024429
复制相似问题