第 0000 题

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

#import Image
from  PIL import Image, ImageDraw, ImageFont, ImageFilter
import sys, os, random

num = str(random.randint(1,99))
imagePath =os.path.join(sys.path[0], '1.png')
savePath=os.path.join(sys.path[0], '0000-01-result-wechat_number.png')
cv 
def add_num(im, wDraw, hDraw):
    font =  ImageFont.truetype('arial.ttf', 30)
    draw =  ImageDraw.Draw(im)
    draw.ellipse(
        (radioX, radioY, radioX + 30, radioY + 30), fill ='red', outline='red')
    draw.text((wDraw, hDraw), num, font=font, fill='white')
    im.save(savePath, 'png')

if __name__ == '__main__':
    im =  Image.open(imagePath)
    w, h = im.size
    print('Original image size:  %sx%s' %(w,h))
    wDraw = int(0.8 * w)
    hDraw = int(0.01 * h)
    radioX = wDraw
    radioY = hDraw
    print('radioX:', radioX)
    print('radioY:', radioY)
    add_num(im, wDraw, hDraw)

1.PIL 报错,解决方案:在CMD下运行pip install pillow
2.os.path.join(sys.path[0], ... ) #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。sys.path[0]为运行文件所在地址
3.from PIL import Image, ImageDraw, ImageFont
Image, ImageDraw, ImageFont 为引入的类
4.if name == 'main': #主函数
5.字体的格式是ttf
6.ImageDraw的方法为Draw,没有draw方法
7.draw.text((wDraw, hDraw), num, font=font, fill='white')
num实际上赋值字符,fill='white'关键字赋实参值

你可能感兴趣的:(第 0000 题)