python 'PngImageFile' object has no attribute 'shape'

我在生成词云是导入图片的时候冒出来这么个问题,在网上搜了一下,没有看到解决方法(也许是我的搜索姿势不对)

部分代码如下,

img = Image.open(path)
wc = WordCloud(
    background_color='white',
    width=1000,
    height=300,
    mask=img,
    font_path=font,
    stopwords=stopword
).generate_from_text(string)#绘制图片

报错的中文解释为:'属性' pngimagefile 对象没有形状    这句话我也不是很懂

不过我选择换一个图片导入方式,

img = plt.imread(path+r'\22.png')

他给我换了个报错方式,

 UserWarning: mask image should be unsigned byte between 0 and 255. Got a float array

  warnings.warn("mask image should be unsigned byte between 0"

不过这次我认识了,所以我机智的改了将图片改成数组

img_array = np.array(img)

结果他还是报那个错,然后我又改回了原来的图片导入方式,

img = Image.open(path) #打开图片
img_array = np.array(img) #将图片装换为数组
wc = WordCloud(
    background_color='white',
    width=1000,
    height=300,
    mask=img_array,
    font_path=font,
).generate_from_text(string)#绘制图片

然后他就成功了,他就有用了,哈哈哈哈!

具体原因我也不太清楚,欢迎大家解释,指正。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值