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

本文介绍如何使用Python的Pillow库在图片上添加随机数字水印,包括库的安装、导入、设置字体、颜色及位置,以及保存图片的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,要安装PIL库,在pytho3中已经叫Pillow,安装命令:pip install Pillow

但是在应用时要导入的名字还叫:PIL

 

 

 在图片上的新生成的数字可以用随机数,所以还需要导入一个random

接下来可以定义函数直接编写代码了

 

 

 执行函数

 

 

 完整代码

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 = ImageFont.truetype("arial.ttf",50) #设置字体大小
fillcolor = ImageColor.colormap.get("red") #设置字体颜色
draw.text((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”都表示纯红色。



转载于:https://www.cnblogs.com/huangguabushihaogua/p/11446536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值