Created ellipse and box designes with necessary features that were missing
This commit is contained in:
parent
31f712a93f
commit
c7522535ea
2 changed files with 45 additions and 0 deletions
32
Calendar/BoxDesign.py
Normal file
32
Calendar/BoxDesign.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
from DesignEntity import DesignEntity
|
||||
from PIL import ImageDraw, ImageOps
|
||||
|
||||
class BoxDesign (DesignEntity):
|
||||
"""Redefinition of ImageDraw.Draw.Rectangle"""
|
||||
def __init__(self, size, fill=None, outline=None, width=0):
|
||||
super(BoxDesign, self).__init__((size[0]+1, size[1]+1))
|
||||
self.size = size
|
||||
self.__define_corners__()
|
||||
self.fill = fill
|
||||
self.outline = outline
|
||||
self.width = width
|
||||
self.is_bitmap = True
|
||||
|
||||
def __define_corners__(self):
|
||||
topleft = (0,0)
|
||||
topright = (self.size[0], 0)
|
||||
bottomleft = (0, self.size[1])
|
||||
bottomright = self.size
|
||||
self.corners = [topleft, topright, bottomright, bottomleft]
|
||||
|
||||
def __finish_image__ (self):
|
||||
for i in range(self.width):
|
||||
ImageDraw.Draw(self.__image__).polygon(self.__get_reduced_corners__(i), fill=self.fill, outline=self.outline)
|
||||
self.__image__ = ImageOps.invert(self.__image__)
|
||||
|
||||
def __get_reduced_corners__(self, reducer):
|
||||
topleft = (reducer, reducer)
|
||||
topright = (self.size[0] - reducer, reducer)
|
||||
bottomleft = (reducer, self.size[1] - reducer)
|
||||
bottomright = (self.size[0] - reducer, self.size[1] - reducer)
|
||||
return [topleft, topright, bottomright, bottomleft]
|
13
Calendar/EllipseDesign.py
Normal file
13
Calendar/EllipseDesign.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
from BoxDesign import BoxDesign
|
||||
from PIL import ImageDraw, ImageOps
|
||||
|
||||
class EllipseDesign (BoxDesign):
|
||||
"""Redefinition of ImageDraw.Draw.Rectangle"""
|
||||
def __init__(self, size, fill=None, outline=None, width=0):
|
||||
super(EllipseDesign, self).__init__(size, fill=fill, outline=outline, width=width)
|
||||
|
||||
def __finish_image__ (self):
|
||||
for i in range(self.width):
|
||||
corners = self.__get_reduced_corners__(i)
|
||||
ImageDraw.Draw(self.__image__).ellipse([corners[0], corners [2]], fill=self.fill, outline=self.outline)
|
||||
self.__image__ = ImageOps.invert(self.__image__)
|
Loading…
Reference in a new issue