From: Michael Tremer Date: Fri, 12 Jun 2020 10:59:38 +0000 (+0000) Subject: wiki: Do not try to resize vector images X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8a62e5893ef4f8bb137337705569c93030350199;p=ipfire.org.git wiki: Do not try to resize vector images This way, we can now support SVG images Signed-off-by: Michael Tremer --- diff --git a/src/backend/wiki.py b/src/backend/wiki.py index 8237da97..c8a8ff8d 100644 --- a/src/backend/wiki.py +++ b/src/backend/wiki.py @@ -529,6 +529,12 @@ class File(misc.Object): def is_image(self): return self.mimetype.startswith("image/") + def is_vector_image(self): + return self.mimetype in ("image/svg+xml",) + + def is_bitmap_image(self): + return self.is_image() and not self.is_vector_image() + @lazy_property def blob(self): res = self.db.get("SELECT data FROM wiki_blobs \ @@ -538,6 +544,8 @@ class File(misc.Object): return bytes(res.data) def get_thumbnail(self, size): + assert self.is_bitmap_image() + cache_key = "-".join((self.path, util.normalize(self.filename), self.created_at.isoformat(), "%spx" % size)) # Try to fetch the data from the cache diff --git a/src/web/wiki.py b/src/web/wiki.py index edc52730..c2bdd43f 100644 --- a/src/web/wiki.py +++ b/src/web/wiki.py @@ -245,7 +245,7 @@ class FileHandler(base.BaseHandler): size = self.get_argument_int("s", None) # Check if image should be resized - if file.is_image() and size: + if size and file.is_bitmap_image(): blob = file.get_thumbnail(size) else: blob = file.blob