Преобразование PIL изображения в массив байтов?
У меня есть изображение в формате изображения PIL. Мне нужно преобразовать его в массив байтов.
img = Image.open(fh, mode='r')
roiImg = img.crop(box)
Теперь мне нужен roiImg
как массив байтов.
Ответы
Ответ 1
Спасибо всем за вашу помощь.
Наконец-то это разрешилось!!
import io
img = Image.open(fh, mode='r')
roiImg = img.crop(box)
imgByteArr = io.BytesIO()
roiImg.save(imgByteArr, format='PNG')
imgByteArr = imgByteArr.getvalue()
С этим мне не нужно сохранять обрезанное изображение на моем жестком диске, и я могу получить массив байтов из обрезанного изображения PIL.
Ответ 2
Это мое решение. Пожалуйста, используйте эту функцию.
from PIL import Image
import io
def image_to_byte_array(image:Image):
imgByteArr = io.BytesIO()
image.save(imgByteArr, format=image.format)
imgByteArr = imgByteArr.getvalue()
return imgByteArr