| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/usr/bin/env python3
- # -*- coding:utf-8 -*-
- def loadFontSize(text, draw, image, fontpath):
- from PIL import ImageFont
- fontsize = 1 # starting font size
- img_fraction = (1,1) # fraction of screen covered
- font = ImageFont.truetype(fontpath, fontsize)
- fsize = (0,0)
- imgsize = (0.9,0.9)
- longline = getLongLine(text.splitlines())
- while True:
- font_last = font
- fontsize += 1
- font = ImageFont.truetype(fontpath, fontsize)
- fsize = draw.textsize(text, font=font)
- imgsize = (img_fraction[0]*image.size[0], img_fraction[1]*image.size[1])
- if (fsize[0] > imgsize[0] or fsize[1] > imgsize[1]):
- break
- print("Fontsize:", fontsize, fsize, imgsize)
- return font_last
- def wrapText(text):
- import textwrap
- splittext = []
- longline = ""
- iter_width = 500
- line_width_factor = 5
- while len(splittext)*line_width_factor < iter_width:
- iter_width -= 1
- splittext = textwrap.wrap(text, width=iter_width)
- longline = getLongLine(splittext)
- print("Wrap:", iter_width, len(splittext))
- return "\n".join(splittext), longline
- def getLongLine(split):
- longline = ""
- for l in split:
- if len(l) > len(longline):
- longline = l
- return longline
- def getQuote():
- try:
- import requests
- # r = requests.get('https://type.fit/api/quotes')
- r = requests.get('http://api.quotable.io/random?maxLength=200')
- r = r.json()
- text = r["content"] + " - " + r["author"]
- except Exception as ex:
- text = str(ex)
- return text
|