2015-10-23 8 views
7

Ich habe kleines Programm geschrieben webp konvertieren in Python jpgFehler beim webp Bilddatei jpg in Python Umwandlung

import imghdr 
from PIL import Image 

im = Image.open("unnamed.webp").convert("RGB") 
im.save("test.jpg","jpeg") 

bei der Ausführung es gibt mir Fehler folgende

No handlers could be found for logger "PIL.ImageFile" 
Traceback (most recent call last): 
    File "webptopng.py", line 3, in <module> 
    im = Image.open("unnamed.webp").convert("RGB") 
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2286, in open 
    % (filename if filename else fp)) 
IOError: cannot identify image file 'unnamed.webp' 

Ich habe installiertes Kissen mit Webp-Fähigkeit. Hier ist meine Kissen Installation Ausgabe

-------------------------------------------------------------------- 
PIL SETUP SUMMARY 
-------------------------------------------------------------------- 
version  Pillow 3.0.0 
platform  linux2 2.7.3 (default, Jun 22 2015, 19:33:41) 
      [GCC 4.6.3] 
-------------------------------------------------------------------- 
--- TKINTER support available 
--- JPEG support available 
*** OPENJPEG (JPEG2000) support not available 
--- ZLIB (PNG/ZIP) support available 
*** LIBTIFF support not available 
--- FREETYPE2 support available 
*** LITTLECMS2 support not available 
--- WEBP support available 
*** WEBPMUX support not available 
-------------------------------------------------------------------- 

Bitte helfen Sie mir, wie es weiter geht.

+0

Ich habe noch nie WebP verwendet, aber Ihr Code _should_ funktioniert. Können Sie überprüfen, ob "unnamed.webp" tatsächlich eine gültige WebP-Datei ist, z. B. mit den Befehlen 'identify' oder' convert' von ImageMagick? Hier –

+1

ausgegeben von file-Befehl in Linux '$ unnamed.webp: RIFF (little-endian) data' Ausgabe von ImageMagick ' $ convert: kein Dekodierungs Delegat für dieses Bildformat 'unnamed.webp' @ Fehler /constitute.c/ReadImage/532. konvertieren: fehlt ein Bild Dateiname '/ dev/null' @ error/convert.c/ConvertImageCommand/3011. ' –

+0

Sorry, ich hätte erwähnen sollen, dass ältere Versionen von ImageMagick _may_ WebP nicht haben. Alles, was ich vorschlagen kann, ist, einen hedddump zu machen, um zu überprüfen, dass die ersten 12 Bytes der Datei mit dem Header übereinstimmen, der im [WebP Wikipedia-Artikel] (https://en.wikipedia.org/wiki/WebP#Technology) gezeigt wird. Und vielleicht versuchen Sie, weitere WebP-Dateien zum Testen zu finden. –

Antwort

2

Dieses Problem wurde jetzt behoben. Ich habe späteste libwebp Bibliothek i, e libwebp-0.4.3 installieren und Kissen neu installieren.

Here ist github Problem Thread, wenn einige gleiche Problem haben.

1

ich Ihren Code mit einem webp Bild getestet und es funktioniert mit Kissen 2.9:

$ wget https://www.gstatic.com/webp/gallery3/2_webp_a.webp 
>>> from PIL import Image 
>>> im = Image.open("2_webp_a.webp").convert("RGB") 
>>> im.save("test.jpg","jpeg") 

Es gibt Kissen 3.0 Ausgabe #1474 mit Ihrem Fehler im Zusammenhang.

Versuchen Sie, Pillow von 3.0 auf 2.9 herunterzustufen, und versuchen Sie es erneut.

+1

Immer noch nicht funktioniert mit Pillow 2.9.0 bekommen den gleichen Fehler '$ pip freeze | grep -i Pillow Pillow == 2.9.0' –

+0

Haben Sie es mit dem gleichen Web-Image und dem gleichen Code versucht? mit der gleichen Kissenversion? Dann schlage ich vor, dass Sie ein Problem auf Pillow's [github page] öffnen (https://github.com/python-pillow/Pillow/) –

+0

Ja, ich habe den gleichen Code und die gleiche Datei wie von Ihnen erwähnt verwendet –