使用GIMP命令行转换XCF和其他文件?

Iva*_*ica 18 bash command-line image gimp script-fu

如果我有一个XCF文件(或Gimp支持的任何其他文件),我如何将其转换为例如PNG以进行显示或进一步处理?

mgi*_*uca 28

我迟了几年,但我想我会添加我认为是迄今为止最好的解决方案:有一个名为Xcftools的工具套件(在Ubuntu上apt-get install xcftools),它有一个实用工具xcf2png,可以完美地完成这项工作.

xcf2png image.xcf -o image.png
Run Code Online (Sandbox Code Playgroud)

这比a)使用ImageMagick(正如我在上面的评论中所说的可怕地被破坏),或b)使用Gimp(其具有极其复杂的脚本语言以简单地导出图像)要好得多.


jas*_*cao 6

我想ImageMagick应该做你想要的(甚至更多)

convert image.xcf image.png
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说根本不起作用.它似乎想要将图层导出为单独的图像(它为每个图层创建了一个name-0.png,name-1.png),但它只提取了前两个图层并将alpha更改为二进制.所以我宁愿使用GIMP.只是不能为我的生活弄清楚用什么Lisp代码写... (2认同)

Dir*_*irk 5

可以在这里找到一个非常好的解决方案(和解释!)。简而言之,有一个bash脚本将scheme/lisp喂给gimp

#!/bin/bash
{
cat <<EOF
(define (convert-xcf-to-jpeg filename outfile)
  (let* (
     (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
     (drawable (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))
     )
    (file-jpeg-save RUN-NONINTERACTIVE image drawable outfile outfile .9 0 0 0 " " 0 1 0 1)
    (gimp-image-delete image) ; ... or the memory will explode
    )
)

(gimp-message-set-handler 1) ; Messages to standard output
EOF

for i in *.xcf; do
  echo "(gimp-message \"$i\")"
  echo "(convert-xcf-to-jpeg \"$i\" \"${i%%.xcf}.jpg\")"
done

echo "(gimp-quit 0)"
} | gimp -i -b -
Run Code Online (Sandbox Code Playgroud)

但请查看该页面以了解完整的故事。这很值得。