--- a/log_formatter_pil.py Sun Sep 13 00:49:55 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-"""
- Use of PIL to render the image formatting stuff
-"""
-
-from PIL import Image, ImageDraw, ImageFont
-
-from cStringIO import StringIO
-
-class PILImageFormatter (object) :
- """
- Mixin for LogFormatter that implements the basic image-rendering operations on top of format_txt
- """
-
- # the font we load
- font = None
-
- # line spacing in pixels
- LINE_SPACING = 1
-
- def _load_font (self) :
- """
- Use the configured img_ttf_path for a TrueType font, or a default one
- """
-
- if self.font :
- pass
-
- elif self.img_ttf_path :
- # load truetype with configured size
- self.font = ImageFont.truetype(self.img_ttf_path, self.img_font_size)
-
- else :
- # default
- self.font = ImageFont.load_default()
-
- return self.font
-
- def format_png (self, lines, **kwargs) :
- """
- Build and return a PNG image of the given lines, using format_txt
- """
-
- # load font
- font = self._load_font()
-
- # build list of plain-text line data
- lines = list(data for line, data in self.format_txt(lines, **kwargs))
-
- # lines sizes
- line_sizes = [font.getsize(line) for line in lines]
-
- # figure out how wide/high the image will be
- width = max(width for width, height in line_sizes)
- height = sum(height + self.LINE_SPACING for width, height in line_sizes)
-
- # create new B/W image
- img = Image.new('L', (width, height), 0xff)
-
- # drawer
- draw = ImageDraw.Draw(img)
-
- # starting offset
- offset_y = 0
-
- # draw the lines
- for line, (width, height) in zip(lines, line_sizes) :
- # draw
- draw.text((0, offset_y), line, font=font)
-
- # next offset
- offset_y += height + self.LINE_SPACING
-
- # output buffer
- buf = StringIO()
-
- # save
- img.save(buf, 'png')
-
- # return data
- return buf.getvalue()
-