Image.open
ve Image.verify()
bir bytearray'i ilk önce diske yazmadan ve im = Image.open()
ile açmadan doğrulamaya çalışıyorum. .readfrombuffer()
ve .readfromstring()
yöntemine baktım, ancak resmin boyutuna ihtiyacım var (yalnızca resim akışını bir görüntüye dönüştürürken elde edebileceğim). Ben bir görüntüye ByteArray dönüştürmek için deneyin bir temel test olarakPIL: Bytearray Görüntüsünü Görüntüsüne Dönüştürme
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
Sonra:
bytes = readimage(path+extension)
im = Image.open(StringIO(bytes))
im.save(savepath)
birisi biliyorsa ne yapıyorum yanlış ya
Benim Salt Fonksiyon şöyle Bu baytları gerçekten bana yardımcı olacak bir görüntüye dönüştürmek için daha zarif bir yol varsa.
P.S .: Bytearray'a ihtiyacım olduğunu düşündüm çünkü baytlar üzerinde manipülasyon yapıyorum (görüntüleri kırın). Bu işe yaramadı, ancak diske yazmadan bunu yapmak istedim ve sonra kırık olup olmadığını kontrol etmek için tekrar diskten görüntü dosyasını açmayı istedim.
Düzenleme: Bütün bunlar o zaman io.BytesIO
kullanmak zorunda, bytearrays
ile manipüle ederse bana IOError: cannot identify image file
Görüntüyü neden numpy dizisine okumayorsunuz? –
@ViktorKerkez Görüntülerin Baytlarını değiştirmek istediğim için. Manipulation parçası için çalışma kodum var, ancak şimdi çıktı görüntüsünün aslında tamamen bozuk olmadığını doğrulamak istiyorum. Ben _have_ bytearrays ile çalışmak için – ato