使用 gimp 脚本调整 SVG 图像大小并转换它

问题描述 投票:0回答:1

我在 Debian 12 系统上使用 gimp 2.10。

我需要使用 gimp,因为在使用 gimp 图形界面进行一些手册测试后,我注意到调整大小/转换后的图像的质量比使用 imagemagik 或 inkscape 更好。

我的 gimp 脚本成功将 SVG 转换为 PNG,但没有调整其大小。

这是我的脚本:

(define (convertresize in_filename out_filename width height)
    (let* (
            (image (car (gimp-file-load RUN-NONINTERACTIVE in_filename "")))
            (drawable (car (gimp-image-get-active-layer image)))
            (gimp-image-scale-full image width height INTERPOLATION-CUBIC)
            (gimp-layer-resize-to-image-size drawable)
        )
        (gimp-file-save RUN-NONINTERACTIVE image drawable out_filename out_filename)
        (gimp-image-delete image)
    )
)

脚本位于

~/.config/GIMP/2.10/scripts
文件夹中。我使用以下命令启动它:

gimp -i -b '(convertresize "./image.svg" "./image.png" 24 24)' -b '(gimp-quit 0)'

所以,我想知道为什么我的脚本不调整图像大小。

svg type-conversion resize gimp image-scaling
1个回答
0
投票

对图像进行的转换必须在加载图像的部分之外完成。

这是正确的代码:

(define (convertresize in_filename out_filename width height)
    (let* (
            (image (car (gimp-file-load RUN-NONINTERACTIVE in_filename "")))
            (drawable (car (gimp-image-get-active-layer image)))
        )
        (gimp-image-undo-disable image)
        (gimp-image-scale-full image width height INTERPOLATION-CUBIC)
        (gimp-layer-resize-to-image-size drawable)
        (gimp-file-save RUN-NONINTERACTIVE image drawable out_filename out_filename)
        (gimp-image-delete image)
    )
)
© www.soinside.com 2019 - 2024. All rights reserved.