【问题标题】:How to export flattened image with GIMP Script-Fu如何使用 GIMP Script-Fu 导出平面图像
【发布时间】:2018-09-30 00:48:51
【问题描述】:

我有一个脚本,它可以展平、调整大小和导出初始图像。我被困在出口上。我正在使用文件-png-保存。我的参数似乎很好,除了第三个参数,它应该是一个可绘制的。

对于可绘制对象,我使用的是从 gimp-image-flatten 获得的扁平层。我收到回复说我的第三个论点无效。图层并不总是作为可绘制对象工作吗?需要转换吗?

(define (script-fu-panel-export inImg drawable inWidth)
    (define filename (car(gimp-image-get-filename inImg)))
    (define comHeight (/ inWidth .75))
    (define piece (car(cdr(cdr(cdr(cdr(cdr(strbreakup filename "/"))))))))
    (define base (car(strbreakup piece ".")))
    (define destination (string-append "/home/samjones/Dev/mobinge/lib/images/" base "-" (number->string inWidth) ".png"))
    (let* ((duplicateImg (car(gimp-image-duplicate inImg))))
    (gimp-image-scale duplicateImg inWidth comHeight)
    (let* ((flatLayer (gimp-image-flatten duplicateImg)))
    (file-png-save 1 duplicateImg flatLayer destination destination 1 0 0 0 0 0 0)
    )
    (gimp-display-new duplicateImg)
    )
)

(script-fu-register
    "script-fu-panel-export"
    "Export Panel. . ."
    "Creates a flattened image export to a selected size.."
    "Sam Jones"
    "copyright 2017, Sam Jones"
    "December 19, 2017"
    ""
    SF-IMAGE         "Image"        0
    SF-DRAWABLE      "Maybe unused" 0
    SF-ADJUSTMENT    "Width"        '(320 20 1200 10 50 0 SF-SLIDER)
)

(script-fu-menu-register "script-fu-panel-export" "<Image>/Filters")

【问题讨论】:

  • 是的,图层始终是可绘制的。您的 flatLayer 变量是否包含现有层的 ID?

标签: scheme drawing gimp script-fu


【解决方案1】:

四处寻找从脚本中保存的人,我发现了一条稍微不同的路线。我替换了这两行:

(let* ((flatLayer (gimp-image-flatten duplicateImg)))
(file-png-save 1 duplicateImg flatLayer destination destination 1 0 0 0 0 0 0))

有了这个:

(gimp-image-flatten duplicateImg)
(file-png-save 1 duplicateImg (car(gimp-image-get-active-drawable duplicateImg))_destination destination 1 0 0 0 0 0 0)

所以我认为 gimp-image-flatten 可能会返回一个以图层作为第一个元素的列表,而不是返回一个图层。我现在知道 gimp-image-get-active 返回一个包含该元素的列表。

这很奇怪,但它有效。

【讨论】:

  • 使用列表有点像列表处理语言。
【解决方案2】:

您没有访问gimp-image-flatten 结果的所需元素。使用car 访问它:

(let* ((flatLayer (car (gimp-image-flatten duplicateImg))))
    (file-png-save 1 duplicateImg flatLayer destination destination 1 0 0 0 0 0 0)
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多