from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
#需要pillow库支持
#此版本增加了刻度精度
#XR=(828*1792,139.9)
#14=(1170,2532,139.7mm)
#151,2340*1080
D= 145
#屏幕物理尺寸(mm)
X,Y= 1080,2280
#屏幕分辨率(pixel)
name= "vivo z3"
#设备型号名称
path = ('/System/Library/Fonts/LanguageSupport/PingFang.ttc')
font = ImageFont.truetype(path,50)
#设置字体和大小
image= Image.new("RGB",(X,Y),(250,250,250))
draw= ImageDraw.Draw(image)
pixel= image.load()
#创建画布对象
for mm in range(11,int(D//10)*10,1):
pi= (mm/D)*Y
#计算1mm有多少个像素
if(mm%5==0):
z= 120
else:
z= 80
#检测每段5mm处分别绘制长度
draw.line([0,pi,z,pi],
fill=(0,0,0),
width=2)
#绘制mm刻度线
for cm in range(10,int(D),10):
pi= (cm/D)*Y
#计算1cm有多少个像素
draw.line([0,pi,200,pi],
fill=(255,0,0),
width=2)
#绘制cm刻度线
S= str(cm//10-1)
fx= font.getoffset(S)[1]
zx,zy= font.getsize(S)
zy= (zy-fx)
draw.text(xy= (fx+200,pi-zy),
text= S,
font=font,
fill= '#000000')
#刻度文字绘制
draw.rectangle(xy=(X/2,0,X,Y),
fill="#1a797c",
outline="red",
width=4)
#绘制限定缩放矩形
draw.text(xy= (X/2+50,Y/2),
text= name,
font=font,
fill= '#ffffff')
#绘制机型
font = ImageFont.truetype(path,20)
#重新设置字体大小
draw.text(xy= (X/2,10),
text= str(D)+"mm"+":"+str(X)+"*"+str(Y),
font=font,
fill= '#ffffff')
#绘制图片屏幕参数
image.show()