Converting XCF and other files using command line

2019-03-18 02:41发布

If I have an XCF file (or any other supported by Gimp) how can I convert it to, for example, PNG for display or further processing?

5条回答
再贱就再见
2楼-- · 2019-03-18 03:19

I guess ImageMagick should do what you want (and even more)

convert image.xcf image.png
查看更多
在下西门庆
3楼-- · 2019-03-18 03:20

I'm a couple of years late, but I thought I'd add what I think is by far the best solution: there is a tool suite called Xcftools (on Ubuntu, apt-get install xcftools), which has a utility called xcf2png that does this job perfectly.

xcf2png image.xcf -o image.png

This is much better than a) using ImageMagick (which as I said in a comment above is horribly broken), or b) using Gimp (which has an extremely complicated scripting language for simply exporting an image).

查看更多
够拽才男人
4楼-- · 2019-03-18 03:24

A very good solution (and explanations!) can be found here. In short, there is a bash script feeding scheme/lisp to 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 -

But look at the page for the full story. It's worth it.

查看更多
5楼-- · 2019-03-18 03:28

If you want to bulk convert .xcf images to .png, you might find this wrapper script more useful:

#! /bin/bash -peux
exec xcf2png $1 -o ${1%.xcf}.png

Save it somewhere on your PATH as xcftopng (note the to instead of 2) and call it like so:

ls *.xcf|xargs -l xcftopng
查看更多
狗以群分
6楼-- · 2019-03-18 03:30

Very few, if any, programs other than GIMP read XCF files. This is by design from the GIMP developers, the format is not really documented or supported as a general-purpose file format.

That being said, look into using GIMP itself, using command line arguments (especially the --batch option).

EDIT: It looks as if ImageMagick does support XCF, so that is probably an easier route if the support seem so be good enough. I haven't tested it, and the documentation doesn't say much. I would be a bit wary.

查看更多
登录 后发表回答