def create_character(fontpath, size, c, bypp, crop, bpp):
try:
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from PIL import ImageChops
except:
# we will get respawn hopefully after python-PIL is loaded
print 'failed to load PIL to create fonts, aborting...'
import time
time.sleep(3)
exit(1)
ifont = ImageFont.truetype(fontpath, size)
size = ifont.getsize(c)
image = Image.new('RGBA', size)
draw = ImageDraw.Draw(image)
draw.text((0, 0), c, font=ifont)
if crop:
bg = Image.new(image.mode, image.size, image.getpixel((0, 0)))
diff = ImageChops.difference(image, bg)
bbox = diff.getbbox()
if bbox:
image = image.crop(bbox)
if bpp:
data = list(image.getdata())
for i in range(len(data)):
d = 255 / (1<<bpp)
v = int(round(data[i][0] / (255 / (1<<bpp))) * (255 / ((1<<bpp)-1)))
data[i] = (v,v,v,v)
image.putdata(data)
return ugfx.surface(image.size[0], image.size[1], bypp, image.tobytes())
评论列表
文章目录