guardar deja como bash command-line image gimp script-fu

bash - deja - ¿Convertir XCF y otros archivos usando la línea de comandos con GIMP?



gimp no me deja guardar (5)

Muy pocos, si los hay, otros programas que no sean GIMP leen archivos XCF. Esto es por diseño de los desarrolladores de GIMP, el formato no está realmente documentado ni se admite como un formato de archivo de propósito general.

Dicho esto, busque el uso de GIMP, usando argumentos de línea de comando (especialmente la opción --batch ).

EDITAR: Parece que ImageMagick admite XCF, por lo que probablemente sea una ruta más fácil si el soporte parece ser lo suficientemente bueno. No lo he probado, y la documentación no dice mucho. Sería un poco cauteloso.

Si tengo un archivo XCF (o cualquier otro compatible con Gimp), ¿cómo puedo convertirlo, por ejemplo, a PNG para mostrarlo o procesarlo?


Si desea convertir de forma masiva las imágenes .xcf a .png, puede encontrar más útil este script de envoltura:

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

xcftopng en algún lugar de su RUTA como xcftopng (tenga en cuenta to lugar de 2 ) y xcftopng así:

ls *.xcf|xargs -l xcftopng


Supongo que ImageMagick debería hacer lo que quieras (y aún más)

convert image.xcf image.png


Una muy buena solución (y explicaciones) se puede encontrar here . En resumen, hay un esquema de alimentación de scripts de bash / 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 -

Pero mira la página para la historia completa. Vale la pena.


Tengo un par de años de retraso, pero pensé que agregaría lo que creo que es, con mucho, la mejor solución: hay un conjunto de herramientas llamado Xcftools (en Ubuntu, apt-get install xcftools ), que tiene una utilidad llamada xcf2png que hace este trabajo perfectamente.

xcf2png image.xcf -o image.png

Esto es mucho mejor que a) usar ImageMagick (que como dije en un comentario anterior está horriblemente roto), o b) usar Gimp (que tiene un lenguaje de scripting extremadamente complicado para simplemente exportar una imagen).