#-*- coding: utf-8 -*-
importtime,random,osimportPIL.Image as ImageimportPIL.ImageColor as ImageColorimportPIL.ImageDraw as ImageDrawimportPIL.ImageFont as ImageFont#from PIL import Image, ImageDraw
"""author@:xiaohe
QQ496631085
python3.7"""
defcircle_corner(img, radii):"""圆角处理
:param img: 源图象。
:param radii: 半径,如:30。
:return: 返回一个圆角处理后的图象。"""
#画圆(用于分离4个角)
circle = Image.new('L', (radii * 2, radii * 2), 0) #创建一个黑色背景的画布
draw =ImageDraw.Draw(circle)
draw.ellipse((0, 0, radii* 2, radii * 2), fill=255) #画白色圆形
#原图
img = img.convert("RGBA")
w, h=img.size#画4个角(将整圆分离为4个部分)
alpha = Image.new('L', img.size, 255)
alpha.paste(circle.crop((0, 0, radii, radii)), (0, 0))#左上角
alpha.paste(circle.crop((radii, 0, radii * 2, radii)), (w - radii, 0)) #右上角
alpha.paste(circle.crop((radii, radii, radii * 2, radii * 2)), (w - radii, h - radii)) #右下角
alpha.paste(circle.crop((0, radii, radii, radii * 2)), (0, h - radii)) #左下角
#alpha.show()
img.putalpha(alpha) #白色区域透明可见,黑色区域不可见
returnimg#对象,位置 字体 字体大小 字体颜色 添加内容
defimgAddFont(im1,gps,font,fontSize,fontColor,data):#在图片上添加文字 1
draw =ImageDraw.Draw(im1)#设置字体
time_font =ImageFont.truetype(font, fontSize)#(0,0):坐标 "内容":添加的字体 (0,0,255):字体颜色 font:字体大小
draw.text(gps,data,fontColor,font=time_font)
draw=ImageDraw.Draw(im1)defcopy(h,m,z,n,v):#手机当前时间 系统时间
systime = str(h) + ":"+str(m)#小时随便减去多少
add_h=random.randint(2,5)#分钟随便减去多少
add_m=random.randint(2,7)#添加好友的时间
addtime = str(h-add_h) + ":"+str(m-add_m)#标题名称
#qun_name = "电销 " + n
qun_name =n#电池电量
diannum =str(v)#打开图片
im1=Image.open("new.png")#系统时间 (宽 高)
imgAddFont(im1,(17,20),'C:\Windows\Fonts\msyh.ttc',38,(50,50,50),systime)#电池电量
imgAddFont(im1,(1012,21),'C:\Windows\Fonts\simhei.ttf',29,(50,50,50),diannum)#群姓名
imgAddFont(im1,(120,108),'C:\Windows\Fonts\msyh.ttc',49,(50,50,50),qun_name)#添加时间
imgAddFont(im1,(490,260),'C:\Windows\Fonts\msyh.ttc',38,(170,170,170),addtime)##发消息时间
#imgAddFont(im1,(490,260),'C:\Windows\Fonts\msyh.ttc',38,(170,170,170),addtime)
#保存位置 22 370
#img=im1
#已经添加好完整的文字了,下面添加图片 打开 缩略 圆角 合并
#打开头像原图检测是否存在不存在就换个后缀
jpg_path = '.\\img\\' +(str(z))if os.path.exists(jpg_path+".jpg"):
img= Image.open(jpg_path+".jpg")else:
img= Image.open(jpg_path+".png")
img= circle_corner(img, radii=20)#缩放等比例的尺寸
w, h =img.size
img.thumbnail((118, 118)) #尺寸等比缩放
#打开底图
layer= Image.new('RGBA', im1.size, (0,0,0,0))
layer.paste(img, (20, 370))
out=Image.composite(layer,im1,layer)#out.save("target.png")
save_time=time.strftime('%Y_%m_%d_%M_%H',time.localtime(time.time()))
out.save(save_time+str(z)+".png")#out.save("target.png")
h=int(input("请输入手机几点"))
m=int(input("请输入现在几分"))
v=int(input("请输入现在电量"))
z=int(input("请输入需要生成多少张图片"))for x in range(1,z+1):
n=input("请输入标题昵称 例如好友")
copy(h,m,x,n,v)