Jestem raczej nowy w python i mam problem z funkcją save
widelca Pillow w PIL."Nieznane rozszerzenie" w funkcji zapisu PIL z powodu pustej tablicy EXTENSION
Dzięki tej minimalnej przykład
import Image
im = Image.new("RGB", (200, 30), "#ddd")
im.save("image.png")
pojawia się następujący błąd:
File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1667, in save
raise KeyError(ext) # unknown extension
KeyError: '.png'
Odpowiednie linie w funkcji save
są
preinit()
[...]
try:
format = EXTENSION[ext]
except KeyError:
raise KeyError(ext) # unknown extension
Spojrzałem na tablicy EXTENSION
i wykrył, że jest pusty, chociaż powinien być zainicjowane w preinit()
przez na przykład from PIL import PngImagePlugin
. PngImagePlugin.py
dzwoni Image.register_extension("PNG", ".png")
. Oglądanie tablicy wewnątrz tej funkcji lub wewnątrz PngImagePlugin
jest rzeczywiście wypełnione rozszerzeniami plików.
Umieszczenie print(EXTENSION)
tuż przed blokiem try-except jednak pokazuje pustą tablicę EXTENSION
.
(ten sam problem z SAVE
tablicy kilka linii w dół w funkcji save
.)
Każda pomoc jest mile widziana.
EDYCJA: Niedawno zaktualizowałem z OpenSuse 13.1. do 13,2. Działało dobrze w 13.1, ale nie w 13.2.
Działa to dla mnie. W twoim przypadku spróbuj użyć 'im.save (" image.png ", format = 'PNG')' i sprawdź, czy to działa. –
To też nie działa. Odpowiednia sekcja jest pomijana w Image.py, ale potem mam ten sam błąd w tablicy "SAVE": 'File" /usr/lib64/python2.7/site-packages/PIL/Image.py ", wiersz 1674, w zapisz save_handler = ZAPISZ [format.upper()] # nieznany format KeyError: 'PNG''' – DAH