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

Python基于numpy矩阵绘制位图 输出全黑无指定红色像素问题排查

问题根因
  • 你创建的numpy数组foo默认使用float64浮点类型,而PIL的RGB模式要求输入为uint8类型的整数数组,每个通道取值范围为0~255。
  • 你打印数组时numpy按float64类型解析,能正确显示255的赋值,但PIL解析数组内存时会按RGB模式要求的1字节无符号整数读取,二者对同一段内存的解析规则不一致,导致赋值的红色像素没有被正确识别,最终输出全黑图片。
修复方案

创建数组时直接指定dtype=np.uint8即可,修复后代码如下:

from PIL import Image
import numpy as np

foo = np.zeros([10,10,3], dtype=np.uint8)
foo[8,8] = [255,0,0] # Draw a red pixel
img = Image.fromarray(foo, 'RGB')
img.save('out.png')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:18:00