2015-02-13 3 views
12

मैं पाइथन के लिए नया हूं और पीआईएल के पिल्लो फोर्क के save फ़ंक्शन के साथ समस्या है।खाली एक्सटेंशन के कारण पीआईएल के सहेजने में 'अज्ञात एक्सटेंशन'

इस न्यूनतम उदाहरण के साथ

import Image 

im = Image.new("RGB", (200, 30), "#ddd") 
im.save("image.png") 

मैं निम्नलिखित त्रुटि मिलती है:

File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1667, in save 
    raise KeyError(ext) # unknown extension 
KeyError: '.png' 

save समारोह में इसी लाइनें हैं

preinit() 

[...] 

try: 
    format = EXTENSION[ext] 
except KeyError: 
    raise KeyError(ext) # unknown extension 

मैं EXTENSION सरणी को देखा और पता चला है कि यह खाली है, हालांकि यह चाहिए उदाहरण के लिए preinit() में आरंभ किया जाना चाहिए। PngImagePlugin.py कॉल Image.register_extension("PNG", ".png")। इस फ़ंक्शन के अंदर या PngImagePlugin के अंदर सरणी को देखना वास्तव में फ़ाइल एक्सटेंशन से भरा हुआ है।

print(EXTENSION) डालने से पहले कोशिश-छोड़ने के ब्लॉक से ठीक पहले EXTENSION सरणी दिखाता है।

(कुछ लाइनें save समारोह में नीचे SAVE सरणी के साथ भी यही मुद्दा।)

किसी भी मदद की सराहना की है।

संपादित करें: मैंने हाल ही में ओपनस्यूज 13.1 से अपग्रेड किया है। 13.2 तक यह 13.1 में ठीक काम किया लेकिन 13.2 में नहीं।

+0

यह मेरे लिए काम करता है। अपने मामले में, 'im.save (" image.png ", format = 'PNG') का उपयोग करने का प्रयास करें और देखें कि यह आपके लिए काम करता है या नहीं। –

+0

यह या तो काम नहीं कर रहा है। संबंधित अनुभाग Image.py में छोड़ा गया है लेकिन फिर मुझे 'सेव' सरणी के साथ एक ही त्रुटि है: 'फ़ाइल "/usr/lib64/python2.7/site-packages/PIL/Image.py", पंक्ति 1674, में save_handler = सहेजें [format.upper()] # अज्ञात प्रारूप कुंजी त्रुटि: 'पीएनजी' – DAH

उत्तर

9

आप इस बजाय लिखने की ज़रूरत:

from PIL import Image # Notice the 'from PIL' at the start of the line 

im = Image.new("RGB", (200, 30), "#ddd") 
im.save("image.png") 
+0

धन्यवाद, यह काम किया! – zega

संबंधित मुद्दे