2009-03-10 7 views
16

Si j'ai un fichier XCF (ou un autre supporté par Gimp), comment puis-je le convertir, par exemple, en PNG pour l'affichage ou le traitement ultérieur?Conversion de XCF et d'autres fichiers en utilisant la ligne de commande avec GIMP?

+1

Si vous voulez savoir comment faire cela avec GIMP plutôt qu'avec ImageMagick (qui a déformé mes images de test) jetez un oeil à [cette question] (http://stackoverflow.com/questions/5794640/how-to-convert -xcf-à-png-using-gimp-from-the-command-line). –

+0

@Laurence Gonsalves, merci! C'est ce que je cherchais à l'origine! –

Répondre

26

Je suis deux ou trois ans de retard, mais je pensais que je rajouterais ce que je pense est de loin la meilleure solution: il y a une suite d'outil appelé Xcftools (sur Ubuntu, apt-get install xcftools), qui a un utilitaire appelé xcf2png cela fait parfaitement ce travail.

xcf2png image.xcf -o image.png 

Cela est beaucoup mieux qu'un) en utilisant ImageMagick (qui, comme je l'ai dit dans un commentaire ci-dessus est horriblement brisée), ou b) en utilisant Gimp (qui a un langage de script extrêmement compliqué pour simplement exporter une image).

5

Je suppose que ImageMagick devrait faire ce que vous voulez (et plus encore)

convert image.xcf image.png 
+0

D'après mon expérience, les versions actuelles d'ImageMagick ont ​​un très mauvais support pour XCF. Différentes tailles de calque rendent l'image résultante complètement noire. Je rencontre également des bugs de canal alpha (pixels solides apparaissant de nulle part). –

+0

Oui, le support XCF d'ImageMagick est sérieusement endommagé. Utiliser Gimp lui-même serait une meilleure option. –

+2

Cela n'a pas fonctionné pour moi du tout. Il semble vouloir exporter des calques en tant qu'images séparées (il a créé un nom-0.png, nom-1.png, pour chaque couche), mais il n'a extrait que les deux premières couches et a changé alpha en binaire. Donc, je préfère utiliser GIMP. Juste ne peut pas pour la vie de moi comprendre ce que le code Lisp à écrire ... – mgiuca

2

Très peu, le cas échéant, des programmes autres que GIMP lire les fichiers XCF. C'est par conception des développeurs de GIMP, le format n'est pas vraiment documenté ou pris en charge en tant que format de fichier général. Cela étant dit, regardez dans GIMP lui-même, en utilisant des arguments de ligne de commande (en particulier l'option --batch).

EDIT: It looks comme si ImageMagick supportait XCF, donc c'est probablement un chemin plus facile si le support semble être assez bon. Je ne l'ai pas testé, et la documentation ne dit pas grand-chose. Je serais un peu méfiant.

+0

On dirait que les travaux de conversion imagemagick. Je préférerais utiliser GIMP car il supporte sûrement mieux son propre format, et supporte également d'autres formats. J'ai essayé de regarder dans GIMP à partir de shell, mais c'est un peu illogique.Pouvez-vous laisser tomber un exemple ou deux sur la conversion avec GIMP, ou un lien avec docs? –

0

Si vous voulez convertir en vrac .xcf images à .png, vous trouverez peut-être ce script wrapper plus utile:

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

Enregistrer quelque part sur votre PATH comme xcftopng (notez le to au lieu de 2) et appeler comme ceci:

ls *.xcf|xargs -l xcftopng 
3

Une très bonne solution (!) et les explications se trouvent here. En bref, il existe un schéma d'alimentation bash script/Lisp pour 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 - 

Mais regardez la page pour l'histoire complète. Ça en vaut la peine.

Questions connexes