网上各种带文字的表情图片都被大家玩坏了,今天就和大家一起用 python 亲自做一个带字表情图片生成器。
不知道大家有没有看到网上有很多人都在说 "人生苦短,我用 python",这句话我之前也不是很理解,觉得人生苦短和用python貌似并没有什么关系,后来算是对这句话慢慢有了自己的理解,我觉得一个重要的原因就是 python 有非常多的库,而且功能很强大,很多功能都不再需要自己造轮子,拿过来就能直接使用,这样真的会节省很多的时间和精力,所以我们就把时间浪费在更多有趣的事情上去吧。说到这一点,其实就是跟我今天要用到的一个图片处理库 pillow 有关,我们用 pillow 只需短短几行代码就能实现给图片加字的功能。
pillow 是python中一个强大的图片处理库,比如常见的图片旋转、翻转、滤镜效果等,都可以很简单的用 pillow 来实现,我前面的文章也有用到过 pillow 对图片进行处理,如果你还没有安装 pillow 的话,先使用命令 pip install pillow 来安装,下面先来看一段代码,这段代码主要是生成一张文字图片。
from PIL import Image, ImageDraw, ImageFont
content = '你怎么这么好看呐' #这是你要加的文字 image = Image.new(mode="RGB", size=(500,260), color=(255,255,255)) #创建一个空白的图片,大小为300*200,背景为白色 draw = ImageDraw.Draw(image)
imageFont = ImageFont.truetype("C:\Windows\Fonts\FZY4JW.TTF", 58) #定义文字字体及字号,这里用你自己电脑本地的字体 #下面三行是用来计算文字的位置,用来居中文字内容 txtSize = draw.textsize(content, imageFont)
pos_x = (500 - txtSize[0]) / 2 if 500 > txtSize[0] else 0 pos = (pos_x, 100)
draw.text(pos, content, font=imageFont, fill='#000000') #文字写入图片 image.save('68.png') #保存图片
我们再来升级下程序,给一张表情图片加字,实现一个斗图表情生成器,下面是完整的实现代码。
from PIL import Image, ImageDraw, ImageFont
content = '也不知道为啥,我好开心啊' #这是你要加的文字 # image = Image.new(mode="RGB", size=(500,260), color=(255,255,255)) #创建一个空白的图片,大小为300*200,背景为白色 image = Image.open('tim1.jpg') #打开一张图片 draw = ImageDraw.Draw(image)
imageFont = ImageFont.truetype("C:\Windows\Fonts\FZY4JW.TTF", 25) #定义文字字体及字号,这里用你自己电脑本地的字体 width,height = image.size #获取图片大小 #下面三行是用来计算文字的位置,用来居中文字内容 txtSize = draw.textsize(content, imageFont)
pos_x = (width - txtSize[0]) / 2 if width > txtSize[0] else 0 pos = (pos_x, 50)
draw.text(pos, content, font=imageFont, fill='#000000') #文字写入图片 image.save('68.png') #保存图片
人生苦短,用短短几行 python 代码就能实现生活中实用的小功能,是不是很有意思呢。