You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从bytearray保存RGBA图像?PIL报错求解决

解决PIL保存RGBA像素数据报错的问题

错误原因

你用Image.open()读取的是裸RGBA像素字节数据,但Image.open()仅能识别包含格式头的完整图像文件(比如标准BMP),无法直接解析无文件头的原始像素数据,因此触发UnidentifiedImageError。

正确实现代码

利用Image.frombytes()直接从像素数据创建图像对象,再保存为目标格式(推荐PNG,原生支持RGBA透明):

from PIL import Image

# 假设已定义变量:width(图像宽度), height(图像高度), rgba_bytearray(RGBA格式字节数组)
# 从原始像素数据创建RGBA图像
img = Image.frombytes(mode="RGBA", size=(width, height), data=rgba_bytearray)

# 保存为PNG(推荐,支持透明通道)
img.save("output.png")

# 若需保存为BMP,直接指定格式即可
# img.save("output.bmp", format="BMP")

原代码问题分析

  1. 重复调用Image.open(stream),第一次调用后流指针移动到末尾,第二次读取为空数据。
  2. 核心错误:传入的bytearray是无格式头的裸像素数据,不符合Image.open()的输入要求。

内容的提问来源于stack exchange,提问作者biluochun2010

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:35:20