imageBuilder.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from PIL import Image, ImageDraw, ImageFont
  2. class imageBuilder():
  3. def __init__(self,width,height,color):
  4. self.new_img = Image.new('RGB', (int(width), int(height)), color)
  5. self.draw_image()
  6. def draw_image(self):
  7. self.draw=ImageDraw.Draw(self.new_img)
  8. self.img_size = self.new_img.size
  9. def draw_text(self,x,y,text):
  10. """
  11. x:横坐标
  12. y:纵坐标
  13. text:内容
  14. """
  15. font_size=40
  16. fnt = ImageFont.truetype('simsun.ttc', font_size)
  17. fnt_size = fnt.getsize(text)
  18. while fnt_size[0] > self.img_size[0] or fnt_size[0] > self.img_size[0]:
  19. font_size -= 5
  20. fnt = ImageFont.truetype('arial.ttf', font_size)
  21. fnt_size = fnt.getsize(text)
  22. self.draw.text((x, y), text, font=fnt, fill=(255, 0, 0))
  23. def splitImage(self,box):
  24. """
  25. 通过元祖(x,y,width,height)裁切图片
  26. """
  27. splitimage=self.new_img.crop(box)
  28. return splitimage
  29. def saveimage(self,path):
  30. self.new_img.save(path)