Eve*_*eba 44 python image bytearray python-imaging-library
我有一个PIL图像格式的图像.我需要将其转换为字节数组.
img = Image.open(fh, mode='r')
roiImg = img.crop(box)
Run Code Online (Sandbox Code Playgroud)
现在我需要roiImg
作为字节数组.
Eve*_*eba 102
谢谢大家的帮助.
终于解决了!!
import io
img = Image.open(fh, mode='r')
roiImg = img.crop(box)
imgByteArr = io.BytesIO()
roiImg.save(imgByteArr, format='PNG')
imgByteArr = imgByteArr.getvalue()
Run Code Online (Sandbox Code Playgroud)
有了这个,我不必将裁剪后的图像保存在硬盘中,我可以从PIL裁剪图像中检索字节数组.
我认为您可以简单地调用 PIL 图像的.tobytes()
方法,然后使用bytes
内置函数将其转换为数组。
#assuming image is a flattened, 3-channel numpy array of e.g. 600 x 600 pixels
bytesarray = bytes(Image.fromarray(array.reshape((600,600,3))).tobytes())
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案。请使用此功能。
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
Run Code Online (Sandbox Code Playgroud)