diff --git a/Calendar/BoxDesign.py b/Calendar/BoxDesign.py new file mode 100644 index 0000000..7017327 --- /dev/null +++ b/Calendar/BoxDesign.py @@ -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] \ No newline at end of file diff --git a/Calendar/EllipseDesign.py b/Calendar/EllipseDesign.py new file mode 100644 index 0000000..38b90d2 --- /dev/null +++ b/Calendar/EllipseDesign.py @@ -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__) \ No newline at end of file