Если у меня есть файл XCF (или любой другой, поддерживаемый Gimp), как я могу его преобразовать, например, PNG для отображения или дальнейшей обработки?
Преобразование XCF и других файлов с помощью командной строки с GIMP?
Ответ 1
Я пару лет опаздываю, но я думал, что добавлю то, что, на мой взгляд, является лучшим решением: есть набор инструментов под названием Xcftools (на Ubuntu, apt-get install xcftools
), который имеет утилиту под названием xcf2png
, которая отлично выполняет эту работу.
xcf2png image.xcf -o image.png
Это намного лучше, чем a) с использованием ImageMagick (который, как я уже сказал в комментарии выше, ужасно нарушен) или b) с использованием Gimp (который имеет чрезвычайно сложный язык сценариев для простого экспорта изображения).
Ответ 2
Я думаю, ImageMagick должен делать то, что вы хотите (и даже больше)
convert image.xcf image.png
Ответ 3
Очень хорошее решение (и объяснения!) можно найти здесь. Короче говоря, существует схема подачи bash script/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 -
Но посмотрите на всю страницу. Это того стоит.
Ответ 4
Очень немногие, если таковые имеются, программы, отличные от GIMP, читают файлы XCF. Это по дизайну от разработчиков GIMP, формат на самом деле не документирован или не поддерживается как формат общего назначения.
При этом рассмотрите использование самого GIMP, используя аргументы командной строки (особенно параметр --batch
).
Ответ 5
Если вы хотите массово конвертировать изображения .xcf в .png, вы можете найти эту оболочку script более полезной:
#! /bin/bash -peux
exec xcf2png $1 -o ${1%.xcf}.png
Сохраните его где-нибудь на вашем PATH как xcftopng
(обратите внимание на to
вместо 2
) и вызовите его так:
ls *.xcf|xargs -l xcftopng