aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/pybootchartgui/pybootchartgui/batch.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/pybootchartgui/pybootchartgui/batch.py')
-rw-r--r--scripts/pybootchartgui/pybootchartgui/batch.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/pybootchartgui/pybootchartgui/batch.py b/scripts/pybootchartgui/pybootchartgui/batch.py
new file mode 100644
index 0000000000..bd67c9350e
--- /dev/null
+++ b/scripts/pybootchartgui/pybootchartgui/batch.py
@@ -0,0 +1,23 @@
+import cairo
+
+import draw
+
+def render(res, format, filename):
+ handlers = {
+ "png": (lambda w,h: cairo.ImageSurface(cairo.FORMAT_ARGB32,w,h), lambda sfc: sfc.write_to_png(filename)),
+ "pdf": (lambda w,h: cairo.PDFSurface(filename, w, h), lambda sfc: 0),
+ "svg": (lambda w,h: cairo.SVGSurface(filename, w, h), lambda sfc: 0)
+ }
+
+ if not(handlers.has_key(format)):
+ print "Unknown format '%s'." % format
+ return 10
+
+ make_surface, write_surface = handlers[format]
+ w,h = draw.extents(*res)
+ w = max(w, draw.MIN_IMG_W)
+ surface = make_surface(w,h)
+ ctx = cairo.Context(surface)
+ draw.render(ctx, *res)
+ write_surface(surface)
+