fix: rotate preview to be human-readable

master
ptrcnull 2024-05-08 22:29:50 +02:00
parent eb58a977da
commit a8e861f499
1 changed files with 11 additions and 1 deletions

View File

@ -38,6 +38,16 @@ class Renderer(object):
with open(name, 'wb') as f:
self.surface.write_to_png(f)
def get_preview(self):
new_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, self.width, self.height)
context = cairo.Context(new_surface)
context.translate(0, self.height)
# 360 no scope
context.rotate(-90.0*math.pi/180.0)
context.set_source_surface(self.surface, 0, 0)
context.paint()
return new_surface.write_to_png()
def render_text(self, text, fontname, x, y, html=False):
print("Fontname:", fontname)
self.context.save()
@ -76,7 +86,7 @@ def stuff_preview(size):
renderer = Renderer()
renderer.render_text(text, 'Sans {}'.format(size), 0, -1, html)
preview = renderer.surface.write_to_png()
preview = renderer.get_preview()
return flask.Response(preview, mimetype='image/png')
DELAY = 5