Python之每日一练QQ头像上加数字

简介: python入门后需要不断的练习才能加深印象,为了提升自己的python编码能力,特地找了一些python小例子进行练习,这个是原文地址:https://github.com/Yixiaohan/show-me-the-code所有的题目都在这里,下面开始第一题,duanduan手...第 1 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。

python入门后需要不断的练习才能加深印象,为了提升自己的python编码能力,特地找了一些python小例子进行练习,这个是原文地址:https://github.com/Yixiaohan/show-me-the-code所有的题目都在这里,下面开始第一题,duanduan手...

第 1 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果

img_0793ec5c448c879bee5e7d64835593a7.png
示例效果图

一、问题分析:

1.通过分析题目可以得知,本题是在图片上面进行的操作,应该是两个图层,一个是QQ头像(固定的),另外一个是红色数字(可变的),需要用到python的PIL模块来处理图像问题。

2.安装PIL和pillow库:pip install PIL和pip install pillow

二、代码实例


#coding:utf-8


fromPILimportImage,ImageDraw,ImageFont


defaddNum(nub,filepath):


img = Image.open('C:\\Users\\admin\\Desktop\\qq.jpg','r')


width,height = img.size


fontSize = height /8


draw = ImageDraw.Draw(img)#确定字体格式和字体大小


ttFont = ImageFont.truetype('C:\\Users\\admin\\Desktop\\Arial.ttf',fontSize)


draw.text((width-fontSize,0),nub,(256,0,0),font=ttFont)#确定显示的 位置,数字,颜色,字体


deldraw


img.save('qq_addNub.jpg')


img.show()


if__name__ =='__main__':


addNum('8','qq.jpq')


img_023e61571461830456cfbc20aeb34444.png
运行代码结果

三、代码分析

1.需要准备好一张图片

2.导入PIL模块的Image,ImageDraw,ImageFont 三个模块,Image主要负责打开一个图片,ImageDraw负责绘制图形,ImageFont负责字体类型、大小等

3.字体资源库www.fontke.com/font/list/1020,2138/

参考文章:http://blog.51cto.com/yucanghai/1715170

目录
相关文章
|
7月前
|
存储 SQL 关系型数据库
Python实现给qq自动发消息 终于有人来和我说早安晚安了吗...
Python实现给qq自动发消息 终于有人来和我说早安晚安了吗...
|
6月前
|
Python
用Python实现QQ/微信消息轰炸
用Python实现QQ/微信消息轰炸
|
7月前
|
Python 人工智能
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
120 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
7月前
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
82 0
Linux 终端命令之文件浏览(3) less
|
7月前
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
215 0
Rust 编程小技巧摘选(8)
|
7月前
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
67 0
力扣 C++|一题多解之动态规划专题(1)
|
7月前
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
63 0
Python Numpy入门基础(二)数组操作
|
7月前
|
C++ 存储
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
58 0
力扣C++|一题多解之数学题专场(1)
|
7月前
|
Java Go C++
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
61 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
7月前
|
Java Go C++
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
70 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组