python图像处理实践——给头像加数字 - Go语言中文社区

python图像处理实践——给头像加数字


原始图像这里写图片描述添加消息后的图像

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

from PIL import Image, ImageDraw, ImageFont

# 打开图片
# 对于彩色图像,不管其图像格式是PNG,还是BMP,或者JPG,在PIL中,使用Image模块的
# open()函数打开后,返回的图像对象的模式都是“RGB”
# 将图像由RGB模式转换为RGBA模式
# 模式“RGBA”为32位彩色图像,它的每个像素用32个bit表示,其中24bit表示红色、绿色
# 和蓝色三个通道,另外8bit表示alpha通道,即透明通道。
img = Image.open('./images_1.jpg').convert('RGBA')

# 创建了一张同样大小的空白图,作为画布
txt = Image.new('RGBA', img.size, (255, 255, 255, 0))

# 将数字大小设置为整张图片面积的1000分之一, 也可以自己随便设
img_area = img.size[0]*img.size[1]
fnt_size = int(img_area/1000)
# 获取已下载好的字体,并设置字体大小
fnt = ImageFont.truetype('./Muli-Regular.ttf', fnt_size)

# get a drawing context
d = ImageDraw.Draw(txt)

# 画圆,参数依次是[a,b](以a、b两点作为矩阵的左上角和右下角,在中间画圆),颜色
d.ellipse([(img.size[0]-40, 0), (img.size[0], 40)], fill=(255, 0, 0))

# 在画布的圆上写字,参数依次是坐标,文本内容,字体,颜色
d.text((img.size[0]-32, -5), '9', font=fnt, fill=(255, 255, 255, 128))

# 把原始图片和操作后的画布,拼在一起
out = Image.alpha_composite(img, txt)
out.show()
out.save('./new_images_1.png')
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_37586991/article/details/80579433
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 16:08:28
  • 阅读 ( 874 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢