news 2026/4/18 6:12:36

Python如何把二进制文本转PIL图片对象

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python如何把二进制文本转PIL图片对象

要将二进制文本转换为PIL对象,可以使用以下步骤:

代码实现

fromPILimportImagefromioimportBytesIO# 假设bytes_str是通过img.get_screenshot(as_bytes='png')获取的二进制数据bytes_str=b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR...'# 示例二进制数据# 将二进制数据转换为PIL.Image对象image=Image.open(BytesIO(bytes_str))# 验证转换结果(可选)print(f"图片格式:{image.format}")print(f"图片尺寸:{image.size}")# image.show() # 显示图片(可选)

关键说明

  1. BytesIO的作用
    将二进制数据包装成虚拟的文件流对象,使PIL的Image.open()能够像处理真实文件一样读取内存中的二进制数据。

  2. 自动检测格式
    PIL会根据二进制数据的头部信息自动识别图片格式(如PNG、JPEG等)。即使你在get_screenshot()中指定了格式(如as_bytes='png'),PIL也能正确解析。

  3. 格式兼容性
    如果二进制数据是完整的图片格式(如包含PNG/JPEG的魔数头),转换过程不会出错。如果数据损坏或不完整,PIL会抛出异常。

补充建议

  • 异常处理:建议添加try-except块捕获PIL.UnidentifiedImageError等异常,避免无效数据导致程序崩溃。
  • 格式显式指定:若需强制指定图片格式(如已知二进制数据是PNG但PIL误识别),可在Image.open()后使用image = image.convert('RGB')或通过format属性修正。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:24:37

光储设计仿真系统推荐

一、国际品牌1.PVSYST作为光储设计仿真领域的经典工具,PVSYST深受全球建筑师、工程师和研究人员青睐。它支持并网、离网等多种光伏储能系统的设计与数据分析,内置广泛的气象数据库和组件数据库,能满足项目从初步设计到详细数据分析的全流程需…

作者头像 李华
网站建设 2026/4/18 6:25:03

Sublime Text配色方案终极配置指南:从单调到专业的视觉升级

Sublime Text配色方案终极配置指南:从单调到专业的视觉升级 【免费下载链接】colour-schemes Colour schemes for a variety of editors created by Dayle Rees. 项目地址: https://gitcode.com/gh_mirrors/co/colour-schemes 你是否在深夜编程时被刺眼的默认…

作者头像 李华
网站建设 2026/4/18 7:51:47

yuzu模拟器中文乱码修复:5分钟快速解决指南

yuzu模拟器中文乱码修复:5分钟快速解决指南 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 还在为yuzu模拟器中文字体显示问题而烦恼吗?游戏内的对话变成乱码、菜单显示方块字,这…

作者头像 李华
网站建设 2026/4/18 5:33:13

认证加密算法对决:AES-GCM与ChaCha20-Poly1305的技术选择指南

认证加密算法对决:AES-GCM与ChaCha20-Poly1305的技术选择指南 【免费下载链接】libsignal Home to the Signal Protocol as well as other cryptographic primitives which make Signal possible. 项目地址: https://gitcode.com/GitHub_Trending/li/libsignal …

作者头像 李华
网站建设 2026/4/18 7:50:31

16、DB2应用开发与pureXML技术全解析

DB2应用开发与pureXML技术全解析 1. 航班计算与信息同步示例 在航班信息处理场景中,若从多伦多到北京平均飞行时间为12小时,Air Discovery系统可通过添加亚特兰蒂斯航空离开多伦多的起飞时间、飞行时长以及一些缓冲时间,来计算从北京到上海的转机航班。缓冲时间的小时数可…

作者头像 李华