¿Convertir XCF y otros archivos usando la línea de comando con GIMP?
-
08-07-2019 - |
Pregunta
Si tengo un archivo XCF (o cualquier otro compatible con Gimp), ¿cómo puedo convertirlo, por ejemplo, a PNG para mostrarlo o procesarlo más?
Solución
Llegué un par de años tarde, pero pensé en agregar 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 script extremadamente complicado para simplemente exportar una imagen).
Otros consejos
Supongo que ImageMagick debería hacer lo que quiere (e incluso más)
convert image.xcf image.png
Se puede encontrar una muy buena solución (¡y explicaciones!) aquí . En resumen, hay un esquema de alimentación de script 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 ver la historia completa. Vale la pena.
Muy pocos, si alguno, programas distintos a GIMP leen archivos XCF. Esto es por diseño de los desarrolladores de GIMP, el formato no está realmente documentado o soportado como un formato de archivo de propósito general.
Dicho esto, busca usar GIMP en sí, usando argumentos de línea de comando (especialmente la opción --batch
).
EDITAR: Parece como si 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 desea convertir en masa imágenes .xcf a .png, puede encontrar este script de envoltura más útil:
#! /bin/bash -peux
exec xcf2png $1 -o ${1%.xcf}.png
Guárdelo en algún lugar de su RUTA como xcftopng
(observe el to
en lugar de 2
) y llámelo así:
ls *.xcf|xargs -l xcftopng