में कनवर्ट करें मैं Image.open
और Image.verify()
के साथ पहले डिस्क पर लिखने के बिना एक बाइटरेयर सत्यापित करने की कोशिश कर रहा हूं और फिर इसे im = Image.open()
के साथ खोलें। मैंने .readfrombuffer()
और .readfromstring()
विधि को देखा, लेकिन वहां मुझे छवि के आकार की आवश्यकता है (जिसे मैं केवल छवि में बाइटस्ट्रीम को परिवर्तित करते समय प्राप्त कर सकता हूं)। गलतपीआईएल: बाइटियर को छवि
bytes = readimage(path+extension)
im = Image.open(StringIO(bytes))
im.save(savepath)
कोई जानता है मैं क्या कर रहा हूँ या:
def readimage(path):
bytes = bytearray()
count = os.stat(path).st_size/2
with open(path, "rb") as f:
print "file opened"
bytes = array('h')
bytes.fromfile(f, count)
return bytes
फिर एक बुनियादी परीक्षण के रूप में मैं एक छवि को bytearray बदलने की कोशिश:
मेरे पढ़ने के समारोह इस तरह दिखता है यदि उन बाइट्स को उस छवि में रूपांतरित करने का एक और शानदार तरीका है जो वास्तव में मेरी मदद करेगा।
पीएस .: मैंने सोचा कि मुझे बाइटरेयर की आवश्यकता है क्योंकि मैं बाइट्स पर छेड़छाड़ करता हूं (उन्हें छवियों को गड़बड़ाना)। यह काम करता था, लेकिन मैं इसे डिस्क पर लिखने के बिना करना चाहता था और फिर डिस्क से छविफाइल को फिर से खोलना चाहता था कि यह टूट गया है या नहीं।
संपादित करें: सभी यह देता है मुझे एक IOError: cannot identify image file
आप छवि को numpy array में क्यों नहीं पढ़ते? –
@ विकटकरकेकेज़ क्योंकि मैं छवियों के बाइट्स में हेरफेर करना चाहता हूं। मेरे पास मैनिपुलेशन भाग के लिए कोडिंग कोड है, लेकिन अब मैं सत्यापित करना चाहता हूं कि आउटपुट छवि वास्तव में पूरी तरह टूट नहीं गई है। तो मैं htearrays – ato