diff --git a/src/c3nav/mapdata/render/__init__.py b/src/c3nav/mapdata/render/__init__.py index 62bbd6b9..4927c7a6 100644 --- a/src/c3nav/mapdata/render/__init__.py +++ b/src/c3nav/mapdata/render/__init__.py @@ -5,4 +5,4 @@ from c3nav.mapdata.render.renderer import LevelRenderer # noqa def render_all_levels(): for level in Level.objects.all(): renderer = LevelRenderer(level) - renderer.write_svg() + renderer.render_png() diff --git a/src/c3nav/mapdata/render/renderer.py b/src/c3nav/mapdata/render/renderer.py index 6451d19d..1458e139 100644 --- a/src/c3nav/mapdata/render/renderer.py +++ b/src/c3nav/mapdata/render/renderer.py @@ -1,6 +1,7 @@ import os import xml.etree.ElementTree as ET +import subprocess from django.conf import settings from django.db.models import Max, Min from shapely.affinity import scale @@ -95,7 +96,23 @@ class LevelRenderer(): return ET.tostring(svg).decode() + def _get_render_path(self, filename): + return os.path.join(settings.RENDER_ROOT, filename) + def write_svg(self): - filename = os.path.join(settings.RENDER_ROOT, 'level-%s.svg' % self.level.name) + filename = self._get_render_path('level-%s.svg' % self.level.name) with open(filename, 'w') as f: f.write(self.get_svg()) + return filename + + def render_png(self): + svg_filename = self.write_svg() + filename = self._get_render_path('level-%s.png' % self.level.name) + subprocess.call(['rsvg-convert', svg_filename, '-o', filename]) + + + + + + +