2

以下是我正在尝试编写的更大的 Script-fu 脚本的一部分。

我在尝试复制打开的 .xcf 文件然后将其缩放到某个用户指定的维度时遇到了问题。

以下是我认为可行的方法:

(define (my-duplicate-and-scale inImage inDrawable inWidth inHeight)
    (let* ((theDuplicateImage (gimp-image-duplicate inImage)))

        (gimp-image-scale theDuplicateImage inWidth inHeight)
    )
)

(script-fu-register
    "my-duplicate-and-scale"   ;func name
    "Duplicate and Scale ..."  ;menu label
    ""                         ;description
    ""                         ;author
    ""                         ;copyright notice
    ""                         ;date created
    "*"                        ;image type that the script works on
    SF-IMAGE    "Image"    0
    SF-DRAWABLE "Drawable" 0
    SF-VALUE    "Width"    "512"
    SF-VALUE    "Height"   "512"
)

(script-fu-menu-register "my-duplicate-and-scale" "<Image>/File/My")

当我执行该函数时,我收到以下错误:

Error while executing my-duplicate-and-scale:

Error: ( : 2) Invalid type for argument 1 to gimp-image-scale 

根据过程浏览器gimp-image-duplicate返回一个IMAGE,第一个参数gimp-image-scale是一个IMAGE

4

1 回答 1

3

试试这个代码:

代替:

(let* ((theDuplicateImage (gimp-image-duplicate inImage)))

和:

(let* ((theDuplicateImage (car (gimp-image-duplicate inImage))))
于 2013-01-11T10:20:43.263 回答