]> git.ipfire.org Git - ipfire.org.git/commitdiff
fireinfo: Refactor generating i-use images
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 26 Oct 2018 17:45:11 +0000 (18:45 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 26 Oct 2018 17:45:11 +0000 (18:45 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
19 files changed:
Makefile.am
src/backend/iuse.py
src/templates/fireinfo/i-use-1.png [moved from src/templates/i-use/i-use-1.png with 100% similarity]
src/templates/fireinfo/i-use-1.xcf [moved from src/templates/i-use/i-use-1.xcf with 100% similarity]
src/templates/i-use/fonts/DejaVuSans-Bold.ttf [deleted file]
src/templates/i-use/fonts/DejaVuSans.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-B.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-BI.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-C.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-L.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-LI.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-M.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-MI.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-R.ttf [deleted file]
src/templates/i-use/fonts/Ubuntu-RI.ttf [deleted file]
src/templates/i-use/fonts/UbuntuMono-B.ttf [deleted file]
src/templates/i-use/fonts/UbuntuMono-BI.ttf [deleted file]
src/templates/i-use/fonts/UbuntuMono-R.ttf [deleted file]
src/templates/i-use/fonts/UbuntuMono-RI.ttf [deleted file]

index 12080b72f66cd36f7ae9a439ca382c9c681a8c96..1beefbcbe83ada87156c28306d18e47e01a1ec5f 100644 (file)
@@ -135,6 +135,11 @@ templates_download_DATA = \
 
 templates_downloaddir = $(templatesdir)/download
 
+templates_fireinfo_DATA = \
+       src/templates/fireinfo/i-use-1.png
+
+templates_fireinfodir = $(templatesdir)/fireinfo
+
 templates_location_DATA = \
        src/templates/location/lookup.html
 
index a3c0c5724f05eac67144ee7ff612e76766cc079a..99c9d0420181dcaa557149118f23d122fc9518cd 100644 (file)
@@ -7,6 +7,7 @@ import os.path
 from PIL import Image, ImageDraw, ImageFont, PngImagePlugin
 
 from .misc import Object
+from .decorators import *
 
 image_types = []
 
@@ -20,70 +21,42 @@ class IUse(Object):
 
 
 class ImageObject(Object):
-       default_mode = "RGBA"
-       default_size = 100, 100
-
        _filename = None
-       _font = "Ubuntu-R.ttf"
-       _font_size = 10
-
-       def __init__(self, backend, request, profile):
-               Object.__init__(self, backend)
 
+       def init(self, request, profile):
                self.request = request
                self.profile = profile
 
                # Create new image
                if self.filename and os.path.exists(self.filename):
-                       self.open(self.filename)
+                       with Image.open(self.filename) as image:
+                               self._image = image.convert("RGBA")
                else:
-                       self._image = Image.new(self.default_mode, self.default_size)
-
-               self.draw()
-
-       def open(self, filename):
-               logging.debug("Opening image as a template: %s" % filename)
-
-               image = Image.open(filename)
-               self._image = image.convert(self.default_mode)
+                       self._image = Image.new("RGBA", (100, 100))
 
-       def save(self, filename):
-               self._image.save(filename, "PNG", optimize=True)
+               self.render()
 
        def to_string(self):
-               f = io.StringIO()
-
-               self.save(f)
-
-               return f.getvalue()
-
-       @property
-       def paint(self):
-               if not hasattr(self, "_draw"):
-                       self._draw = ImageDraw.Draw(self._image)
+               with io.BytesIO() as f:
+                       self._image.save(f, "PNG", optimize=True)
 
-               return self._draw
+                       return f.getvalue()
 
-       def draw(self):
-               raise NotImplementedError
-
-       @property
+       @lazy_property
        def font(self):
-               if not hasattr(self, "__font"):
-                       fontfile = os.path.join(
-                               self.request.application.settings.get("template_path", ""),
-                               "i-use", "fonts", self._font
-                       )
+               fontfile = os.path.join(
+                       self.request.application.settings.get("static_path", ""),
+                       "fonts/Mukta-Regular.ttf"
+               )
 
-                       self.__font = ImageFont.truetype(fontfile, self._font_size, encoding="unic")
+               return ImageFont.truetype(fontfile, 15, encoding="unic")
 
-               return self.__font
+       @lazy_property
+       def draw(self):
+               return ImageDraw.Draw(self._image)
 
        def draw_text(self, pos, text, **kwargs):
-               if "font" not in kwargs:
-                       kwargs["font"] = self.font
-
-               return self.paint.text(pos, text, **kwargs)
+               return self.draw.text(pos, text, font=self.font, **kwargs)
 
        @property
        def filename(self):
@@ -92,7 +65,7 @@ class ImageObject(Object):
 
                return os.path.join(
                        self.request.application.settings.get("template_path", ""),
-                       "i-use", self._filename
+                       "fireinfo", self._filename
                )
 
        @property
@@ -104,12 +77,9 @@ class Image1(ImageObject):
        id = 0
 
        default_size = 500, 50
-
        _filename = "i-use-1.png"
-       _font = "Ubuntu-R.ttf"
-       _font_size = 14
 
-       def draw(self):
+       def render(self):
                _ = self.locale.translate
 
                line1 = [_("%s on %s") % (self.profile.release_short, self.profile.arch),]
@@ -133,8 +103,8 @@ class Image1(ImageObject):
 
                        line2.append(self.profile.friendly_memory)
 
-               self.draw_text((225, 9), " | ".join(line1))
-               self.draw_text((225, 27), "%s" % " - ".join(line2))
+               self.draw_text((225, 5), " | ".join(line1))
+               self.draw_text((225, 23), "%s" % " - ".join(line2))
 
 
 image_types.append(Image1)
diff --git a/src/templates/i-use/fonts/DejaVuSans-Bold.ttf b/src/templates/i-use/fonts/DejaVuSans-Bold.ttf
deleted file mode 100644 (file)
index badc808..0000000
Binary files a/src/templates/i-use/fonts/DejaVuSans-Bold.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/DejaVuSans.ttf b/src/templates/i-use/fonts/DejaVuSans.ttf
deleted file mode 100644 (file)
index e820f02..0000000
Binary files a/src/templates/i-use/fonts/DejaVuSans.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-B.ttf b/src/templates/i-use/fonts/Ubuntu-B.ttf
deleted file mode 100644 (file)
index c0142fe..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-B.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-BI.ttf b/src/templates/i-use/fonts/Ubuntu-BI.ttf
deleted file mode 100644 (file)
index 12e4c7d..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-BI.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-C.ttf b/src/templates/i-use/fonts/Ubuntu-C.ttf
deleted file mode 100644 (file)
index 8d3e867..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-C.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-L.ttf b/src/templates/i-use/fonts/Ubuntu-L.ttf
deleted file mode 100644 (file)
index 7b7ac7d..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-L.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-LI.ttf b/src/templates/i-use/fonts/Ubuntu-LI.ttf
deleted file mode 100644 (file)
index e36de45..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-LI.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-M.ttf b/src/templates/i-use/fonts/Ubuntu-M.ttf
deleted file mode 100644 (file)
index 443ec8b..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-M.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-MI.ttf b/src/templates/i-use/fonts/Ubuntu-MI.ttf
deleted file mode 100644 (file)
index 321eccf..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-MI.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-R.ttf b/src/templates/i-use/fonts/Ubuntu-R.ttf
deleted file mode 100644 (file)
index 45a038b..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-R.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/Ubuntu-RI.ttf b/src/templates/i-use/fonts/Ubuntu-RI.ttf
deleted file mode 100644 (file)
index 6f819f6..0000000
Binary files a/src/templates/i-use/fonts/Ubuntu-RI.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/UbuntuMono-B.ttf b/src/templates/i-use/fonts/UbuntuMono-B.ttf
deleted file mode 100644 (file)
index 7bd6665..0000000
Binary files a/src/templates/i-use/fonts/UbuntuMono-B.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/UbuntuMono-BI.ttf b/src/templates/i-use/fonts/UbuntuMono-BI.ttf
deleted file mode 100644 (file)
index 6c5b8ba..0000000
Binary files a/src/templates/i-use/fonts/UbuntuMono-BI.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/UbuntuMono-R.ttf b/src/templates/i-use/fonts/UbuntuMono-R.ttf
deleted file mode 100644 (file)
index fdd309d..0000000
Binary files a/src/templates/i-use/fonts/UbuntuMono-R.ttf and /dev/null differ
diff --git a/src/templates/i-use/fonts/UbuntuMono-RI.ttf b/src/templates/i-use/fonts/UbuntuMono-RI.ttf
deleted file mode 100644 (file)
index 18f81a2..0000000
Binary files a/src/templates/i-use/fonts/UbuntuMono-RI.ttf and /dev/null differ