PIL Bilder aus ZIP-Dateien laden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

Freitag 2. Januar 2009, 12:34

Gibt es eine Möglichkeit, mit PIL Bilder aus ZIP-Dateien zu laden?
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Freitag 2. Januar 2009, 13:14

Indem du die zip-Datei vorher mit ``zipfile.ZipFile`` öffnest.
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

Freitag 2. Januar 2009, 13:18

das war mir auch klar

ich habe das Bild ausgelesen und in eine Datei gespeichert. Nur ist das Bild dann nicht mehr Lesbar...

E://habs jetzt mit w+b gemacht, nur kommt jetzt

Code: Alles auswählen

IOError: cannot read interlaced PNG files
Gibt es eine Möglichkeit diese zu lesen?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Freitag 2. Januar 2009, 14:20

du willst es doch lesen, oder?

Code: Alles auswählen

zipfile.ZipFile("samples/sample.zip", "r")
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Freitag 2. Januar 2009, 14:48

Die Fehlermeldung sagt es doch schon: PIL kann keine interlaced PNGs lesen.
MfG
HWK
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

Freitag 2. Januar 2009, 14:52

HWK hat geschrieben:Die Fehlermeldung sagt es doch schon: PIL kann keine interlaced PNGs lesen.
MfG
HWK
Das wusste ich auch :|
Gibt es einen Patch/what ever, um interlaced pngs zu lesen?
Oder ein Tool, mit dem ich aus interslaced png normale machen kann (ganzes Verzeichnis konvertieren)
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Freitag 2. Januar 2009, 15:15

Vielleicht ImageMagick oder, wenn es ganz low-level sein soll, libpng.
MfG
HWK
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 2. Januar 2009, 15:29

HWK hat geschrieben:Vielleicht ImageMagick
Ja, mit ImageMagick geht das:

Code: Alles auswählen

convert -interlace none source.png target.png
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Freitag 2. Januar 2009, 15:33

Evtl. erfüllt auch Pygame Deinen Zweck.
MfG
HWK
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

Freitag 2. Januar 2009, 16:28

kann mir jemand mal die convert.exe geben (mit libs). ich krieg das ganze irgendwie nich installiert oO
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 2. Januar 2009, 17:34

Birne94 hat geschrieben:kann mir jemand mal die convert.exe geben (mit libs). ich krieg das ganze irgendwie nich installiert oO
:?: :?: :?:

Hier kannst du's herunterladen, installieren, anwenden: http://www.imagemagick.org/script/binary-releases.php

Die Doku ist ausgeprochen gut!
Benutzeravatar
snafu
User
Beiträge: 5525
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 2. Januar 2009, 17:42

Es wird auch ein Interface für Python bereitgestellt (habe ich aber nicht getestet) : http://www.imagemagick.org/script/api.php#python
shcol (Repo | Doc | PyPi)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 2. Januar 2009, 18:26

snafu hat geschrieben:Es wird auch ein Interface für Python bereitgestellt (habe ich aber nicht getestet) : http://www.imagemagick.org/script/api.php#python
Für das, was der OP vorhat, reicht ein einfaches:

Code: Alles auswählen

import subprocess
subprocess.call(["convert","-interlace","none","source.png","target.png"])
So schnell kann ich PythonMagick nicht mal entpacken und installieren ... :wink:
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 2. Januar 2009, 18:50

Für das in-place-verändern gibt es übrigens ``mogrify``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten