第 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'关键字赋实参值
网友评论