将你的QQ头像(或者微博头像)右上⾓加上红⾊的数字,类似于未读信息数量那种提⽰效果
⾸先,要安装PIL库,在pytho3中已经叫Pillow,安装命令:pip install Pillow
但是在应⽤时要导⼊的名字还叫:PIL
在图⽚上的新⽣成的数字可以⽤随机数,所以还需要导⼊⼀个random
接下来可以定义函数直接编写代码了
执⾏函数
完整代码
qq换不了头像怎么回事from PIL import Image,ImageDraw,ImageFont,ImageColor
import random
def Put_Add_Num(pic,num):
im = Image.open(pic) #打开图⽚
draw = ImageDraw.Draw(im) #创建draw对象
x,y =im.size #获取图⽚⼤⼩
font = uetype("f",50) #设置字体⼤⼩
fillcolor = ("red") #设置字体颜⾊
<((x - 30,40),"%s"%num,font = font , fill = fillcolor) #添加⽂字
im.save("D:\\Test_script\\image.png")
if __name__ == "__main__":
pic = "D:\\Test_script\\Pic\\WeChat.jpg" #图⽚路径
num = random.randint(1,10) #添加1到10的随机整数
Put_Add_Num(pic,num)
最后说说踩过的坑
1、save保存的图⽚最好是⽤png格式,否则如果原始图⽚是png格式就会报错:OSError: cannot write mode RGBA as JPEG
这是因为:PNG有RGBA四个通道,⽽JPEG是RGB三个通道,所以PNG转BMP时候程序不知道A通道怎么办,就会产⽣错误。
最好的解决办法就是放弃⼀个通道,保存为png格式,或者增加if判断语句
2、图⽚的原始路径和新图⽚的保存路径中需要转义字符:‘\’
3、获取图⽚的坐标与PIl的开始坐标⼀致为图⽚的左上⾓(0,0)
4、⼗六进制颜⾊说明符,定义为“#rgb”或者“#rrggbb”。例如,“#ff0000”表⽰纯红⾊
5、ImageDraw模块提供了140个标准颜⾊名称,Xwindow系统和⼤多数web浏览器都⽀持这些颜⾊。颜⾊名称对⼤⼩写不敏感。例如,“red”和“Red”都表⽰纯红⾊。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论