imagebuilder.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. """
  2. 图片生成器
  3. """
  4. from PIL import Image, ImageDraw, ImageFont
  5. class imageBuilder():
  6. def __init__(self,width,height,color):
  7. self.new_img = Image.new('RGB', (int(width), int(height)), color)
  8. self.draw_image()
  9. def draw_image(self):
  10. self.draw=ImageDraw.Draw(self.new_img)
  11. self.img_size = self.new_img.size
  12. def draw_text(self,x,y,text):
  13. """
  14. x:横坐标
  15. y:纵坐标
  16. text:内容
  17. """
  18. font_size=40
  19. fnt = ImageFont.truetype('simsun.ttc', font_size)
  20. fnt_size = fnt.getsize(text)
  21. while fnt_size[0] > self.img_size[0] or fnt_size[0] > self.img_size[0]:
  22. font_size -= 5
  23. fnt = ImageFont.truetype('arial.ttf', font_size)
  24. fnt_size = fnt.getsize(text)
  25. self.draw.text((x, y), text, font=fnt, fill=(255, 0, 0))
  26. def splitImage(self,box):
  27. """
  28. 通过元祖(x,y,width,height)裁切图片
  29. """
  30. splitimage=self.new_img.crop(box)
  31. return splitimage
  32. def saveimage(self,path):
  33. self.new_img.save(path)
  34. # if '__main__' == __name__:
  35. # imagebuilder=imageBuilder(2514, 1760, color=(255, 255, 255, 255))
  36. # imagebuilder.draw_text(0,0,"adadasdsd")
  37. # imagebuilder.draw_text(100, 500, "dadasdinmmm")
  38. # image=imagebuilder.splitImage((0,0,500,100))
  39. # image.save("2.jpg")
  40. # imagebuilder.saveimage("1.jpg")
  41. #new_image_with_file('image_data.txt')