2012-05-25 4 views
15

Ich habe mich umgesehen und die Dokumente gelesen, und fand keine Möglichkeit oder Lösung, also frage ich hier. Gibt es Pakete, mit denen Python ein JPG-Bild in ein PNG-Bild konvertieren kann?Converting .jpg Bilder in .png

+0

Es Python-Anbindung an ImageMagick zu sein scheinen: http: // www .imagemagick.org/download/python /. Ich habe sie nicht benutzt, aber ich habe ImageMagick benutzt, und es wird tun, was Sie wollen. –

Antwort

20

Sie könnten immer die Python Image Library (PIL) für diesen Zweck verwenden. Es könnte auch andere Pakete/Bibliotheken geben, aber ich habe dies bereits benutzt, um zwischen verschiedenen Formaten zu konvertieren.

Dies funktioniert mit Python 2.7 unter Windows (Python Imaging Library 1.1.7 for Python 2.7), verwende ich es mit 2.7.1 und 2.7.2

import Image 

im = Image.open('Foto.jpg') 
im.save('Foto.png') 

Ihre ursprünglichen Frage Hinweis nicht die Version von Python oder dem O erwähnt hatte du benutzt. Das kann einen Unterschied natürlich machen :)

+0

Nun, es heißt Python 2.7 ist erforderlich, und ich habe 2.7.3, so wird es mich nicht installieren lassen. Fehle ich etwas? – user1417933

+1

@ user1417933 Wenn Sie Windows sind, benötigen Sie einen Geschmack von PIL (32 oder 64), der mit Ihrem Python kompatibel ist. – greggo

+0

Ah, danke Greggo, fand ein x64-Paket, das für mich funktionierte. – user1417933

9

Python Bildbibliothek: http://www.pythonware.com/products/pil/

Von: http://effbot.org/imagingbook/image.htm

import Image 
im = Image.open("file.png") 
im.save("file.jpg", "JPEG") 

speichern

im.save (outfile, Optionen ...)

im.save (outfile , Format, Optionen ...)

Speichert das Bild unter dem angegebenen Dateinamen. Wenn das Format nicht angegeben wird, wird das Format aus der Dateinamenserweiterung ermittelt, sofern möglich. Diese Methode gibt None zurück.

Schlüsselwortoptionen können verwendet werden, um dem Writer zusätzliche Anweisungen zu geben. Wenn ein Schreiber eine Option nicht erkennt, wird er automatisch ignoriert. Die verfügbaren Optionen werden später in diesem Handbuch beschrieben.

Sie können ein Dateiobjekt anstelle eines Dateinamens verwenden. In diesem Fall müssen Sie immer das Format angeben. Das Dateiobjekt muss die Methoden seek, tell und write implementieren und im Binärmodus geöffnet sein.

Wenn das Speichern fehlschlägt, löst die Methode aus bestimmten Gründen eine Ausnahme aus (normalerweise eine IOError-Ausnahme). Wenn dies geschieht, hat die Methode möglicherweise die Datei erstellt und möglicherweise Daten darauf geschrieben. Es liegt an Ihrer Anwendung, um unvollständige Dateien zu entfernen, falls erforderlich.