source: regenerate_pngs.py

Last change on this file was 600:f9276a4f7bdf, checked in by Adrianna Pińska <adrianna.pinska@…>, 11 years ago

rooster sprite

  • Property exe set to *
File size: 2.6 KB
Line 
1#!/usr/bin/env python
2
3import cairo
4import rsvg
5import os
6
7def svg_to_png(svg_name, png_name, w, h):
8    """Convert an SVG file to a PNG file."""
9    print "Generating %s at %dx%d..." % (png_name, w, h)
10    r = rsvg.Handle(svg_name)
11
12    scale = max(float(r.props.width) / w, float(r.props.height) / h)
13    scale = 1.0 / scale
14
15    r.props.dpi_x = r.props.dpi_x / scale
16    r.props.dpi_y = r.props.dpi_y / scale
17
18    cs = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
19    ctx = cairo.Context(cs)
20    ctx.scale(scale, scale)
21    r.render_cairo(ctx)
22    cs.write_to_png(png_name)
23
24def process_svg_folder(path, width, height):
25    for dirpath, dirnames, filenames in os.walk(path):
26        for filename in filenames:
27            basename, ext = os.path.splitext(filename)
28            if ext == ".svg":
29                svg_name = os.path.join(dirpath, basename + ".svg")
30                png_name = os.path.join(dirpath, basename + ".png")
31                svg_to_png(svg_name, png_name, width, height)
32
33def process_sprite(name, width, height, sprite_path):
34    svg_name = os.path.join(sprite_path, name) + ".svg"
35    png_name = os.path.join(sprite_path, name) + ".png"
36    svg_to_png(svg_name, png_name, width, height)
37
38TILE_PATH = "data/tiles"
39SPRITE_PATH = "data/sprites"
40IMAGE_PATH = "data/images"
41
42SPRITES = [
43    # chicken bits
44    ("chkn", 20, 20),
45    ("rooster", 20, 20),
46    ("wing", 20, 20),
47    ("eye", 20, 20),
48    ("equip_rifle", 20, 20),
49    ("equip_sniper_rifle", 20, 20),
50    ("equip_knife", 20, 20),
51    ("equip_kevlar", 20, 20),
52    ("equip_helmet", 20, 20),
53    ("equip_axe", 20, 20),
54    ("select_chkn", 20, 20),
55    ("nest", 20, 20),
56    ("equip_egg", 20, 20),
57    ("equip_easter_egg", 20, 20),
58    # fox bits
59    ("fox", 20, 20),
60    ("ninja_fox", 20, 20),
61    ("sapper_fox", 20, 20),
62    ("rinkhals", 20, 20),
63    # buildings
64    ("henhouse", 60, 40),
65    ("select_henhouse", 60, 40),
66    ("hendominium", 40, 60),
67    ("select_hendominium", 40, 60),
68    ("watchtower", 40, 40),
69    ("select_watchtower", 40, 40),
70    # special effects
71    ("muzzle_flash", 20, 20),
72    ("chkn_death", 20, 20),
73    ("fox_death", 20, 20),
74    ("boom1", 20, 20),
75    ("boom2", 20, 20),
76    ("boom3", 20, 20),
77    ("boom4", 20, 20),
78]
79
80if __name__ == "__main__":
81    process_svg_folder("data/tiles", 20, 20)
82    process_svg_folder("data/icons", 40, 40)
83    for name, width, height in SPRITES:
84        process_sprite(name, width, height, SPRITE_PATH)
85    process_sprite("splash", 800, 600, IMAGE_PATH)
86    process_sprite("gameover_win", 800, 600, IMAGE_PATH)
87    process_sprite("gameover_lose", 800, 600, IMAGE_PATH)
Note: See TracBrowser for help on using the repository browser.