用Python实现在微信头像右上角加上红底白字的数字,类似于微信未读信息数量那种提示效果

      本文为原创文本,转载请注明出处~

      本人最近开始学习Python编程。昨天本人用Python写了一个比较有意思的小程序。可以在微信头像右上角加上红底白字的数字,类似于微信未读信息数量那种提示效果。更换处理过的图像之后,果然有粗心的微信好友被骗了。内心窃喜ing,哈哈哈。

      促使我编写本程序的因素主要有两个。一是,我的一个同学的支付宝头像就是右上角带一个红底白字的数字1,搞得我总以为他给我转了一笔钱,点开一看~~好吧,我太年轻了;二是,昨日在网上搜集资料,浏览博客的时候,看到了这样一篇博客(强烈推荐小白们动手写写里面的程序!)。这里面的第0000题给了我想要试试的冲动。我对博主的程序做了很多的改进,写成了自己的程序,有兴趣的可以把两个程序对比一下。

      废话到此为止。上干货!程序代码在文章的最后//原谅我还不会在博文里上传文件。我觉得里面的注释解释的很清楚了。我在编写调试是遇到的一些问题以及解决方案也已经包含在注释中了。最后,上几个张效果图吧。

这是原来的微信头像,下面的是处理过的图像。


其实,处理后的头像和未读消息提示时的样子还是有区别的。但是猛的一看还是可以骗到人的。就酱~

'''
程序文件说明
用Python实现微信头像右上角加上红底白字的数字,类似于微信未读信息数量那种提示效果
函数名称:在jpg图像中添加数字的函数 add_num()
入口参数:.open()函数返回的图像文件句柄(指针)
出口参数:无
编辑时间:2018.04.10
编辑人:XiuCai
'''
#导入要用到的图像库Image, ImageDraw, ImageFont
from PIL import Image, ImageDraw, ImageFont
#PIL https://pillow.readthedocs.org/
#如果运行后提示找不到PIL,说明没有安装PIL。
#在命令提示符窗口敲入pip install pillow然后回车,会自动安装PIL并解决问题

#自定义添加数字的函数
def add_num(img):
    #生成一个图像副本对象,在副本里可以对图像进行任意修改和操作
    draw = ImageDraw.Draw(img)
    
    width, height = img.size                       #获得图像大小
    RD = min(width *7 //16, height*7 //16)         #获得圆的直径RD    
    positionC = (width - RD, 0, width, RD)         #圆C的位置范围,图像右上角
    positionNum = (width - RD *3 //4 , -RD *1 /16) #数字Num的起始位置
    Red = (255, 0, 0)   #红色 也可以写成 Red = '#ff0000'
    White = "#ffffff"   #白色 也可以写成 White = (255, 255, 255)
    
    #加载TrueType或OpenType字体文件,并创建一个字体对象。
    myfont = ImageFont.truetype('C:/windows/fonts/Arial.TTF', size = RD)
    
    Add_num = input('请输入你想添加的0 - 9之间的数字:\n')
    #判断输入是否为0 - 9之间的数字 
    while len(Add_num)!= 1 or not('0' <= Add_num <= '9'):
    #如果不是0 - 9之间的数字,则不添加且要求重新输入。
        print('输入有误!')
        Add_num = input('请重新输入0 - 9之间的数字:')
        
    #如果是0 - 9之间的数字,则添加数字到图像右上角。
    draw.ellipse(positionC , fill = Red)                            #在图像的右上角画出一个红圆
    draw.text(positionNum, Add_num , font = myfont , fill = White)  #在红圆中写出数字
    
    #保存修改后的图像,原图像依然存在。保存路径与程序文件***.py路径一致
    img.save('NumberAddedww.jpg' , 'jpeg')
    return 0


#打开想要修改的图像文件,注意文件的绝对路径要用双斜杆“\\”,单斜杆“\”有可能会报错
image = Image.open('C:\\Users\\Administrator\\Desktop\\微信图片_20180410174705.jpg')
add_num(image)#调用自定义添加数字的函数


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值