PIL: конвертировать Bytearray в изображение
Я пытаюсь проверить bytearray сImage.open
а такжеImage.verify()
без записи сначала на диск, а затем открыть его сim = Image.open()
, Я посмотрел на.readfrombuffer()
а также.readfromstring()
метод, но там мне нужен размер изображения (который я мог получить только при преобразовании байтового потока в изображение).
Моя функция чтения выглядит так:
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 в изображение:
bytes = readimage(path+extension)
im = Image.open(StringIO(bytes))
im.save(savepath)
Если кто-то знает, что я делаю неправильно, или если есть более элегантный способ преобразовать эти байты в изображение, которое 'я действительно помогу
П.С .: Я думал, что мне нужен байтовый массив, потому что я делаю манипуляции с байтами (сглаживаю их изображения). Это сработало, но я хотел сделать это без записи на диск, а затем снова открыть файл образа с диска, чтобы проверить, не сломан он или нет.
Редактировать: все, что это дает мнеIOError: cannot identify image file