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

使用Image.fromarray()生成图像出现异常竖线问题求助

问题解决:PIL显示numpy数组出现彩色竖线

你遇到的彩色竖线问题根源在于numpy数组的数据类型不匹配:

  • np.full默认创建的是int64类型数组,但PIL的RGB模式要求输入必须是uint8(0-255的无符号8位整数)类型。
  • 当PIL尝试解析非uint8类型的数组时,会错误地读取数据,导致出现异常的色彩条纹。

修复方案

有两种简单的解决方式:

方式1:创建数组时指定dtype

from PIL import Image
import numpy as np
a = np.full((400, 400, 3), 255, dtype=np.uint8)
im = Image.fromarray(a, mode="RGB")
im.show()

方式2:生成后转换数据类型

from PIL import Image
import numpy as np
a = np.full((400, 400, 3), 255)
a = a.astype(np.uint8)  # 转换为PIL兼容的uint8类型
im = Image.fromarray(a, mode="RGB")
im.show()

原理说明

RGB图像的每个颜色通道取值范围是0-255,正好对应uint8类型的数值范围。使用int64等其他类型时,PIL会将64位的数据按8位分段读取,导致颜色数据混乱,最终出现你看到的交替竖线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:25:10