2009-03-10 6 views
16

Jeśli mam plik XCF (lub jakikolwiek inny obsługiwany przez Gimp), w jaki sposób mogę go przekonwertować na przykład do formatu PNG w celu wyświetlenia lub dalszego przetwarzania?Konwersja XCF i innych plików przy użyciu wiersza poleceń z GIMP?

+1

Jeśli chcesz dowiedzieć się, jak to zrobić w GIMP zamiast w ImageMagick (który zniekształcił moje obrazy testowe), spójrz na [to pytanie] (http://stackoverflow.com/questions/5794640/how-to-convert -xcf-to-png-using-gimp-from-the-command-line). –

+0

@ Laurence Gonsalves, dzięki! Tego właśnie szukałem! –

Odpowiedz

26

Jestem kilka lat późno, ale myślałem, że dodać co moim zdaniem jest to zdecydowanie najlepsze rozwiązanie: jest pakiet narzędzi o nazwie Xcftools (na Ubuntu, apt-get install xcftools), który ma narzędzia o nazwie xcf2png to doskonale wykonuje tę pracę.

xcf2png image.xcf -o image.png 

Jest to o wiele lepsze niż a) przy użyciu ImageMagick (która, jak powiedziałem w komentarzu powyżej jest strasznie łamany) lub b) za pomocą Gimpa (która ma niezwykle skomplikowany język skryptowy dla prostu eksportowania obrazu).

5

Chyba ImageMagick powinien robić to, co chcesz (a nawet więcej)

convert image.xcf image.png 
+0

Z mojego doświadczenia wynika, że ​​obecne wersje ImageMagick mają bardzo błędne wsparcie dla XCF. Różne rozmiary warstw powodują, że wynikowy obraz jest całkowicie czarny. Wyczuwam również błędy kanału alfa (stałe piksele pojawiające się znikąd). –

+0

Tak, obsługa XCF ImageMagick jest poważnie uszkodzona. Samo użycie gimp byłoby lepszym rozwiązaniem. –

+2

To nie dla mnie działało. Wydaje się, że chcieliśmy wyeksportować warstwy jako oddzielne obrazy (utworzyło nazwę-0.png, nazwa-1.png, dla każdej warstwy), ale wyodrębniło tylko pierwsze dwie warstwy i zmieniło alfa na binarne. Więc wolałbym używać GIMP-a. Po prostu nie mogę dla mojego życia dowiedzieć się, jaki kod Lisp pisać ... – mgiuca

2

Bardzo niewiele, jeśli w ogóle, programy inne niż GIMP odczytać pliki XCF. Jest to projektowane przez programistów GIMP, format nie jest tak naprawdę udokumentowany lub obsługiwany jako format pliku ogólnego przeznaczenia.

W tym przypadku spójrz na użycie samego GIMP, używając argumentów wiersza poleceń (szczególnie opcji --batch).

EDYTOWANIE: It looks tak, jakby ImageMagick obsługuje XCF, więc jest to prawdopodobnie łatwiejsza droga, jeśli wsparcie wydaje się być wystarczająco dobre. Nie testowałem tego, a dokumentacja niewiele mówi. Byłbym trochę ostrożny.

+0

Wygląda jak konwertowane dzieła imagemagick. Wolałbym używać GIMP, ponieważ z pewnością lepiej obsługuje on swój własny format, a także obsługuje inne formaty. Próbowałem zaglądać do GIMP z powłoki, ale jest to trochę nieintuicyjne.Czy możesz ewentualnie upuścić przykład lub dwa na konwersję z GIMP lub link z dokumentami? –

0

Jeśli chcesz luzem konwertować .xcf obrazów png, można znaleźć ten skrypt otoki bardziej przydatne:

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

zapisać go gdzieś na ścieżkę xcftopng (zauważ to zamiast 2) i nazwać tak:

ls *.xcf|xargs -l xcftopng 
3

bardzo dobrym rozwiązaniem (!) i wyjaśnienia można znaleźć here. W skrócie, istnieje schemat skryptu bashowania/seplenia do 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 - 

Ale spójrz na stronę pełnej historii. To jest tego warte.

Powiązane problemy