Mercurial > rinkhals
view regenerate-pngs.py @ 21:c9a33bcfe407
Commit PNG versions of tiles.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sun, 30 Aug 2009 17:50:29 +0000 |
parents | 53960047c186 |
children | c8436f1752d7 |
line wrap: on
line source
#!/usr/bin/env python import cairo import rsvg import os def svg_to_png(svg_name, png_name, w, h): """Convert an SVG file to a PNG file.""" r = rsvg.Handle(svg_name) scale = max(float(r.props.width) / w, float(r.props.height) / h) scale = 1.0 / scale r.props.dpi_x = r.props.dpi_x / scale r.props.dpi_y = r.props.dpi_y / scale cs = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h) ctx = cairo.Context(cs) ctx.scale(scale, scale) r.render_cairo(ctx) cs.write_to_png(png_name) def main(path, width, height): for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: basename, ext = os.path.splitext(filename) if ext == ".svg": svg_name = os.path.join(dirpath, basename + ".svg") png_name = os.path.join(dirpath, basename + ".png") print "Generating %s at %dx%d..." % (png_name, width, height) svg_to_png(svg_name, png_name, width, height) if __name__ == "__main__": main("data", 20, 20)