Description
将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果.
Analysis
题目的目的应该是希望我们读入一张图片,然后在右上角使用Font模块贴一个数字.
Solution
首先,我们通过搜索引擎了解到python处理图像常用的library是PIL.下载其中某一版本后解压后可看到:
其中Docs下有详细的文档,需要用到什么功能都可以去查一下便是,可以看到有一个selftest.py文件,打开有一些简单的上手教程。在本题中,我们需要学习的是打开一张图片,使用画笔在其上贴上一个数字。通过查阅文档可知,做到这个效果主要使用到了Image,ImageDraw,ImageFont。
代码
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# 打开一张图片
img = Image.open('./spider/0 (85).jpg')
# 创建一个画笔
draw = ImageDraw.ImageDraw(img)
# 创建字体,第一个参数为字体文件,第二个字体大小
ft = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF", 30)
# 将字体画到图片的右上角 ,
# 第一个参数是位置,第二个是内容,
# 第三个设置字体,第四个是字体的颜色
draw.text((img.width * 0.8, img.height * 0.2), u"4", font=ft, fill='red')
# 显示图片
img.show()
最终效果
这道题主要考察了python中常用的图像处理库PIL的运行,在处理实际问题时若遇到之前未使用过的功能,查阅文档即可。