Преобразование 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