什么是字云呢?字云就是由字构成的图片,废话不多说,先来看看字云的效果吧。
从图上的效果可以看出,图片原有的颜色没有了,只剩下了形状,然后里面全部都是由文字构成,这就是所谓的“字云”啦,可以想象一下,学会了这个是不是在别人只是发图片的时候,你可以发一个由字构成的图片,想象一下效果更炫呢
下面就来看看怎么制作个这个“字云”吧,在使用python程序制作这个效果时要使用一个外部程序包,名字叫做“wordcloud”,说道这里可能有同学要问了什么是外部程序包呢?先说一下什么程序包,程序包就类似于日常生活中的工具箱,箱子里有很多各种各样工具,例如钳子、刀、斧头等东西,而程序包中也有很多的工具,例如在这里使用的程序包“wordcloud”,在这个包有拆分句子的工具、形成字云效果的工具...,而所谓的外部指的是独立于python存在,对应的是内部程序包,就是python中已经存在的。
下面就来看看“wordcloud”这个包在python中怎么使用吧,首先在程序需要使用到包中分割句子的工具WordCloud(请注意,这里首字母大写,不同于上面的包名),使用方式如下:
from wordcloud import WordCloud
同样的也可以只使用包名,而不明确规定要使用的工具,使用方式如下:
import wordcloud ,这样也可以将要使用的第三方包引入程序中(对于具体引入包的方法,以后有课程详细接受)。
这样就可以将外部程序包wordcloud中的工具WordCloud引入到程序中
同样的,我们还需要外部包numpy(将图片分解)
按照相同的方式导入这些外部包
import numpy as np
可以看到上面导入外部包的时候添加了一个“as”,它的作用是给导入的包取一个别名,类似于生活中的爸妈叫我们的小名
引入外部包之后呢,就开始使用这些包里面的具体工具了
第一步,将素材图片打开,并用numpy分解成小块,将这步操作取个名字为alice_mask;
alice_mask = np.array(Image.open("love.png"));
第二步,使用工具WordCloud按照图片的样子绘制出一个初步的模型出来
wc = WordCloud(font_path='华文行楷.ttf',background_color="white", max_words=2000,mask=alice_mask)
在这行代码中设置要使用的字体格式,这里选择的是(华文行楷字体),然后设置背景颜色,可以放置的字体最大数量,最后是将打开的图片设置为初步的轮廓。
第三步,将有文字的文件“describe.txt”打开,在这个文件中填写你要想要表达的文字,效果如下:
可以看到,我将一个个要写的字中间使用一个空格隔开,将文件中文字读入程序中,并取个名字为text
text = open("describe.txt", "r").read()
第四步,将处理好的字放入到打开的图形轮廓中
wc.generate(text)
最后,将图片保存下来
wc.to_file("wordcloud.png")
效果如下:
私下交流微信