PIL Error, TypeError: Cannot handle this data type:(1, 1), <i8

在尝试使用PIL的Image.fromarray方法从numpy数组生成图像时遇到TypeError,原因是数据类型不匹配。解决方法是将numpy数组转换为np.uint8类型。例如,可以使用`img_array = img_array.astype(np.uint8)`来转换,然后重新尝试创建图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


1.问题描述

PIL的Image.fromarray使用numpy array生成数组时报错,

Traceback (most recent call last):
  File "/media/lx/data/code/test_python/pil_test.py", line 8, in <module>
    print(Image.fromarray(img_array))
  File "/home/lx/anaconda3/envs/Python36/lib/python3.6/site-packages/PIL/Image.py", line 2766, in fromarray
    raise TypeError("Cannot handle this data type: %s, %s" % typekey) from e
TypeError: Cannot handle this data type: (1, 1), <i8

2.解决方式

# 将numpy array转成np.uint8类型
img_array = img_array.astype(np.uint8)
img_array = np.random.randint(0, 34, (5, 4), dtype=np.uint8)
Image.fromarray(img_array)

参考资料


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值