web-dev-qa-db-ja.com

PILイメージをバイト配列に変換しますか?

PIL画像形式の画像があります。バイト配列に変換する必要があります。

img = Image.open(fh, mode='r')  
roiImg = img.crop(box)

今、バイト配列としてroiImgが必要です。

39
Evelyn Jeba

皆さん、助けてくれてありがとう。

ついに解決しました!!

import io

img = Image.open(fh, mode='r')
roiImg = img.crop(box)

imgByteArr = io.BytesIO()
roiImg.save(imgByteArr, format='PNG')
imgByteArr = imgByteArr.getvalue()

これにより、トリミングした画像をハードディスクに保存する必要がなくなり、PILでトリミングした画像からバイト配列を取得できます。

93
Evelyn Jeba

これが私の解決策です。この機能を使用してください。

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
2
Nori