diff options
Diffstat (limited to 'scripts/pybootchartgui/pybootchartgui/batch.py')
-rw-r--r-- | scripts/pybootchartgui/pybootchartgui/batch.py | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/scripts/pybootchartgui/pybootchartgui/batch.py b/scripts/pybootchartgui/pybootchartgui/batch.py index 3c1dbf8416..05c714e95e 100644 --- a/scripts/pybootchartgui/pybootchartgui/batch.py +++ b/scripts/pybootchartgui/pybootchartgui/batch.py @@ -1,23 +1,46 @@ -import cairo +# This file is part of pybootchartgui. + +# pybootchartgui is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# pybootchartgui is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. -import draw +# You should have received a copy of the GNU General Public License +# along with pybootchartgui. If not, see <http://www.gnu.org/licenses/>. -def render(res, format, filename): +import cairo +from . import draw +from .draw import RenderOptions + +def render(writer, trace, app_options, 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) + "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 + if app_options.format is None: + fmt = filename.rsplit('.', 1)[1] + else: + fmt = app_options.format + + if not (fmt in handlers): + writer.error ("Unknown format '%s'." % fmt) 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) + make_surface, write_surface = handlers[fmt] + options = RenderOptions (app_options) + (w, h) = draw.extents (options, 1.0, trace) + w = max (w, draw.MIN_IMG_W) + surface = make_surface (w, h) + ctx = cairo.Context (surface) + draw.render (ctx, options, 1.0, trace) + write_surface (surface) + writer.status ("bootchart written to '%s'" % filename) |