繁体   English   中英

具有BytesIO的PIL:无法识别图像文件

[英]PIL with BytesIO: cannot identify image file

我正在尝试通过套接字连接发送图像以进行视频聊天,但是从字节格式重建图像是不正确的。 这是我将图像转换为要发送的字节:

pil_im = Image.fromarray(img)
b = io.BytesIO()
pil_im.save(b, 'jpeg')
im_bytes = b.getvalue()
return im_bytes

这很好,但是,我无法将这些字节重新格式化为图像文件。 这是我的重新格式化为图像以​​供显示的代码:

pil_bytes = io.BytesIO(im_bytes)
pil_image = Image.open(pil_bytes)
cv_image = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
return cv_image

那里的第二行引发以下异常:

无法识别图像文件<_io.BytesIO对象位于0x0388EF60>

我查看了其他一些线程( 这一这一线程),但是没有解决方案对我有帮助。 我也以此为参考来尝试纠正自己,但似乎对他们而言行之有效的事情对我而言却并非如此。 感谢您提供的任何帮助,请原谅任何错误,我仍在学习python。

首先谢谢! 因为您问题中的代码帮助我解决了问题的第一部分。 第二部分已经使用此简单代码为我解决了(不要转换为数组)

dataBytesIO = io.BytesIO(im_bytes)
image = Image.open(dataBytesIO)

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM