【Python基础系列】每天一个小程序-01

文章目录

题目

第0000题
将你的 QQ 头像(或者微博/信头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果。
【Python基础系列】每天一个小程序-01

参考代码

from PIL import Image, ImageDraw, ImageColor, ImageFont

def add_num(img):
    draw = ImageDraw.Draw(img)
    font1 = ImageFont.truetype('/System/Library/Fonts/Apple Symbols.ttf', size=40)
    fillcolor = ImageColor.colormap.get('red')
    width, height = img.size
    draw.text((width-30, 0), '1', font=font1, fill=fillcolor)
    #在新建对象上的(width-30, 0)处开始画红色的“1”
    img.save('result.jpg', 'jpeg')
    return 0

if __name__ == '__main__':
    image = Image.open('test.jpg')
    add_num(image)

代码分析

PIL(Python Image Library),Python平台的图像处理标准库。

  • 打开图片Image.open()
  • 保存图片img.save()
  • 获取图片尺寸width, height = img.size

ImageDraw模块提供图像对象的简单2D绘制。

  • 创建Draw对象draw = ImageDraw.Draw(img)

ImageFont模块的truetype函数

  • 使用方法:ImageFont.truetype(file,size)
  • 作用:加载一个TrueType或者OpenType字体文件,并且创建一个字体对象。这个函数从指定的文件加载了一个字体对象,并且为指定大小的字体创建了字体对象。

ImageColor

  • PIL.ImageColor 包含两个将字符串转换为颜色值的函数 getrgb() 与 getcolor().
  • 颜色名称作为参数传入, 允许的名称定义在 PIL.ImageColor.colormap 中
上一篇:java IO简介


下一篇:python在图片中添加文字学习文档