首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GIMP Script-Fu导出平面化图像

如何使用GIMP Script-Fu导出平面化图像
EN

Stack Overflow用户
提问于 2018-04-19 21:30:17
回答 2查看 1.6K关注 0票数 4

我有一个脚本,应该是扁平化,调整大小和导出一个初始图像。我被出口卡住了。我使用file-png-save。除了第三个参数之外,我的参数看起来还不错,第三个参数应该是可绘制的。

对于可绘制的,我使用从gimp-image-flatten获得的扁平层。我得到的响应是我的第三个参数是无效的。层并不总是像可绘制的那样工作?我需要转换它吗?

代码语言:javascript
复制
(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")
EN

回答 2

Stack Overflow用户

发布于 2018-04-20 10:58:07

环顾周围那些从脚本中节省下来的人,我发现了一种略有不同的工作方式。我替换了这两行:

代码语言:javascript
复制
(let* ((flatLayer (gimp-image-flatten duplicateImg)))
(file-png-save 1 duplicateImg flatLayer destination destination 1 0 0 0 0 0 0))

有了这个:

代码语言:javascript
复制
(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返回一个带有元素的列表。

这很奇怪,但很管用。

票数 1
EN

Stack Overflow用户

发布于 2020-08-02 23:55:59

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

代码语言:javascript
复制
(let* ((flatLayer (car (gimp-image-flatten duplicateImg))))
    (file-png-save 1 duplicateImg flatLayer destination destination 1 0 0 0 0 0 0)
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49922377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档