1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 | import os
import sys
from PIL import Image, ImageDraw, ImageFont, ImageFilter, ImageChops
try:
from cStringIO import StringIO
except:
from StringIO import StringIO
# Fix this path to match your configuration
fontpath = "/usr/local/src/python/multimedia/Imaging-1.1.5/pilfonts"
def zope_txt2img(self, id, label, imgformat="PNG", **kw):
"""
Copy this module to your Zope Instance Extensions directory,
and after restarting Zope do create an External Method in ZMI
following the example:
Id - txt2img
Title - Convert text into image
Module Name - txt2img.py
Function Name - zope_txt2img
"""
from OFS.Image import manage_addImage
imgfile = StringIO()
img = txt2img(label, **kw)
img.save(imgfile, imgformat)
manage_addImage(self, id, imgfile)
def txt2img(label, fontname="courB08.pil", imgformat="PNG",
fgcolor=(0,0,0), bgcolor=(255,255,255),
rotate_angle=0):
"""Render label as image."""
font = ImageFont.load(os.path.join(fontpath,fontname))
imgOut = Image.new("RGBA", (20,49), bgcolor)
# calculate space needed to render text
draw = ImageDraw.Draw(imgOut)
sizex, sizey = draw.textsize(label, font=font)
imgOut = imgOut.resize((sizex,sizey))
# render label into image draw area
draw = ImageDraw.Draw(imgOut)
draw.text((0, 0), label, fill=fgcolor, font=font)
if rotate_angle:
imgOut = imgOut.rotate(rotate_angle)
return imgOut
if __name__ == "__main__":
img = txt2img("fulano@belex.com.br", "helvR10.pil")
img.save('output.png')
|
Unused function argument. Function txt2img has 'imgformat' as argument but it never used it.