2

次のエラーが表示されます。

エラー: gimp-layer-new への引数 1 の型が無効です

しかし、私が知る限り、その関数を実行しても「イメージ」はまだスコープ内にあり、正しいタイプである 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)
 )
)
4

1 に答える 1

3

これを試して:

(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式を単純化する自由を取りましたが、本質的に問題は、このページのセクション 6の例によると、 によってcar返される値のを取得する必要があることです。これにより、質問。gimp-image-newError: Invalid type for argument 1 to gimp-layer-new

于 2012-08-19T14:59:39.893 に答える