Tôi khá mới với python và gặp sự cố với chức năng save
của ngã ba Gối của PIL.'Tiện ích mở rộng không xác định' trong chức năng lưu PIL do mảng EXTENSION trống
Với ví dụ tối thiểu này
import Image
im = Image.new("RGB", (200, 30), "#ddd")
im.save("image.png")
tôi nhận được lỗi sau:
File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1667, in save
raise KeyError(ext) # unknown extension
KeyError: '.png'
Các dòng tương ứng trong save
chức năng là
preinit()
[...]
try:
format = EXTENSION[ext]
except KeyError:
raise KeyError(ext) # unknown extension
tôi nhìn vào mảng EXTENSION
và phát hiện ra rằng nó trống, mặc dù nó nên được khởi tạo trong preinit()
bằng ví dụ from PIL import PngImagePlugin
. PngImagePlugin.py
gọi Image.register_extension("PNG", ".png")
. Xem mảng bên trong hàm này hoặc bên trong PngImagePlugin
nó thực sự được lấp đầy với phần mở rộng tệp.
Đặt print(EXTENSION)
ngay trước khối try-except-block, tuy nhiên sẽ hiển thị mảng trống EXTENSION
.
(Cùng một vấn đề với SAVE
mảng một vài dòng xuống trong save
chức năng.)
Any help is appreciated.
EDIT: Gần đây tôi đã nâng cấp từ OpenSuse 13.1. đến 13.2. Nó hoạt động tốt trong 13.1 nhưng không hoạt động trong 13.2.
này làm việc cho tôi. Trong trường hợp của bạn, hãy thử sử dụng 'im.save (" image.png ", format = 'PNG')' và xem nó có phù hợp với bạn hay không. –
Điều này không hoạt động. Phần tương ứng được bỏ qua trong Image.py nhưng sau đó tôi có cùng lỗi với mảng 'SAVE':' File "/usr/lib64/python2.7/site-packages/PIL/Image.py", dòng 1674, trong tiết kiệm save_handler = SAVE [format.upper()] # định dạng không xác định KeyError: 'PNG''' – DAH