home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pypil112.zip / PIL-1.1.2.zip / Lib / site-packages / PIL / ImageDraw.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2001-12-25  |  7KB  |  177 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.2)
  3.  
  4. import Image
  5.  
  6. class Draw:
  7.     
  8.     def __init__(self, im):
  9.         im.load()
  10.         if im.readonly:
  11.             im._copy()
  12.         
  13.         self.im = im.im
  14.         if im.mode in ('I', 'F'):
  15.             self.ink = self.im.draw_ink(1)
  16.         else:
  17.             self.ink = self.im.draw_ink(-1)
  18.         self.fill = 0
  19.         self.font = None
  20.  
  21.     
  22.     def setink(self, ink):
  23.         self.ink = self.im.draw_ink(ink)
  24.  
  25.     
  26.     def setfill(self, onoff):
  27.         self.fill = onoff
  28.  
  29.     
  30.     def setfont(self, font):
  31.         self.font = font
  32.  
  33.     
  34.     def getfont(self):
  35.         if not (self.font):
  36.             import ImageFont
  37.             self.font = ImageFont.load_path('BDF/courR14.pil')
  38.         
  39.         return self.font
  40.  
  41.     
  42.     def textsize(self, text, font = None):
  43.         if font is None:
  44.             font = self.getfont()
  45.         
  46.         return font.getsize(text)
  47.  
  48.     
  49.     def _getink(self, ink, fill = None):
  50.         if ink is None and fill is None:
  51.             if self.fill:
  52.                 fill = self.ink
  53.             else:
  54.                 ink = self.ink
  55.         elif ink is not None:
  56.             ink = self.im.draw_ink(ink)
  57.         
  58.         if fill is not None:
  59.             fill = self.im.draw_ink(fill)
  60.         
  61.         return (ink, fill)
  62.  
  63.     
  64.     def arc(self, xy, start, end, fill = None):
  65.         (ink, fill) = self._getink(fill)
  66.         if ink is not None:
  67.             self.im.draw_arc(xy, start, end, ink)
  68.         
  69.  
  70.     
  71.     def bitmap(self, xy, bitmap, fill = None):
  72.         bitmap.load()
  73.         (ink, fill) = self._getink(fill)
  74.         if ink is None:
  75.             ink = fill
  76.         
  77.         if ink is not None:
  78.             self.im.draw_bitmap(xy, bitmap.im, ink)
  79.         
  80.  
  81.     
  82.     def chord(self, xy, start, end, fill = None, outline = None):
  83.         (ink, fill) = self._getink(outline, fill)
  84.         if fill is not None:
  85.             self.im.draw_chord(xy, start, end, fill, 1)
  86.         
  87.         if ink is not None:
  88.             self.im.draw_chord(xy, start, end, ink, 0)
  89.         
  90.  
  91.     
  92.     def ellipse(self, xy, fill = None, outline = None):
  93.         (ink, fill) = self._getink(outline, fill)
  94.         if fill is not None:
  95.             self.im.draw_ellipse(xy, fill, 1)
  96.         
  97.         if ink is not None:
  98.             self.im.draw_ellipse(xy, ink, 0)
  99.         
  100.  
  101.     
  102.     def line(self, xy, fill = None):
  103.         (ink, fill) = self._getink(fill)
  104.         if ink is not None:
  105.             self.im.draw_lines(xy, ink)
  106.         
  107.  
  108.     
  109.     def shape(self, shape, fill = None, outline = None):
  110.         shape.close()
  111.         (ink, fill) = self._getink(outline, fill)
  112.         if fill is not None:
  113.             self.im.draw_outline(shape, fill, 1)
  114.         
  115.         if ink is not None:
  116.             self.im.draw_outline(shape, ink, 0)
  117.         
  118.  
  119.     
  120.     def pieslice(self, xy, start, end, fill = None, outline = None):
  121.         (ink, fill) = self._getink(outline, fill)
  122.         if fill is not None:
  123.             self.im.draw_pieslice(xy, start, end, fill, 1)
  124.         
  125.         if ink is not None:
  126.             self.im.draw_pieslice(xy, start, end, ink, 0)
  127.         
  128.  
  129.     
  130.     def point(self, xy, fill = None):
  131.         (ink, fill) = self._getink(fill)
  132.         if ink is not None:
  133.             self.im.draw_points(xy, ink)
  134.         
  135.  
  136.     
  137.     def polygon(self, xy, fill = None, outline = None):
  138.         (ink, fill) = self._getink(outline, fill)
  139.         if fill is not None:
  140.             self.im.draw_polygon(xy, fill, 1)
  141.         
  142.         if ink is not None:
  143.             self.im.draw_polygon(xy, ink, 0)
  144.         
  145.  
  146.     
  147.     def rectangle(self, xy, fill = None, outline = None):
  148.         (ink, fill) = self._getink(outline, fill)
  149.         if fill is not None:
  150.             self.im.draw_rectangle(xy, fill, 1)
  151.         
  152.         if ink is not None:
  153.             self.im.draw_rectangle(xy, ink, 0)
  154.         
  155.  
  156.     
  157.     def text(self, xy, text, fill = None, font = None, anchor = None):
  158.         (ink, fill) = self._getink(fill)
  159.         if font is None:
  160.             font = self.getfont()
  161.         
  162.         if ink is None:
  163.             ink = fill
  164.         
  165.         if ink is not None:
  166.             self.im.draw_bitmap(xy, font.getmask(text), ink)
  167.         
  168.  
  169.  
  170. ImageDraw = Draw
  171.  
  172. try:
  173.     Outline = Image.core.outline
  174. except:
  175.     Outline = None
  176.  
  177.