annotate regenerate_pngs.py @ 600:f9276a4f7bdf

rooster sprite
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Thu, 03 Dec 2009 19:29:54 +0000
parents 41864335aeee
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
2
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
3 import cairo
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
4 import rsvg
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
5 import os
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
6
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
7 def svg_to_png(svg_name, png_name, w, h):
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
8 """Convert an SVG file to a PNG file."""
33
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
9 print "Generating %s at %dx%d..." % (png_name, w, h)
18
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
10 r = rsvg.Handle(svg_name)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
11
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
12 scale = max(float(r.props.width) / w, float(r.props.height) / h)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
13 scale = 1.0 / scale
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
14
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
15 r.props.dpi_x = r.props.dpi_x / scale
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
16 r.props.dpi_y = r.props.dpi_y / scale
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
17
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
18 cs = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
19 ctx = cairo.Context(cs)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
20 ctx.scale(scale, scale)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
21 r.render_cairo(ctx)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
22 cs.write_to_png(png_name)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
23
33
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
24 def process_svg_folder(path, width, height):
18
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
25 for dirpath, dirnames, filenames in os.walk(path):
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
26 for filename in filenames:
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
27 basename, ext = os.path.splitext(filename)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
28 if ext == ".svg":
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
29 svg_name = os.path.join(dirpath, basename + ".svg")
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
30 png_name = os.path.join(dirpath, basename + ".png")
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
31 svg_to_png(svg_name, png_name, width, height)
53960047c186 Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
32
33
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
33 def process_sprite(name, width, height, sprite_path):
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
34 svg_name = os.path.join(sprite_path, name) + ".svg"
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
35 png_name = os.path.join(sprite_path, name) + ".png"
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
36 svg_to_png(svg_name, png_name, width, height)
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
37
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
38 TILE_PATH = "data/tiles"
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
39 SPRITE_PATH = "data/sprites"
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
40 IMAGE_PATH = "data/images"
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
41
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
42 SPRITES = [
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
43 # chicken bits
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
44 ("chkn", 20, 20),
600
f9276a4f7bdf rooster sprite
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 583
diff changeset
45 ("rooster", 20, 20),
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
46 ("wing", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
47 ("eye", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
48 ("equip_rifle", 20, 20),
430
db7bb20d2336 sniper rifle graphics
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 422
diff changeset
49 ("equip_sniper_rifle", 20, 20),
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
50 ("equip_knife", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
51 ("equip_kevlar", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
52 ("equip_helmet", 20, 20),
422
ab4fc3fe0f96 chickens scatter; chop wood
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 291
diff changeset
53 ("equip_axe", 20, 20),
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
54 ("select_chkn", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
55 ("nest", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
56 ("equip_egg", 20, 20),
583
41864335aeee easter eggs
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 455
diff changeset
57 ("equip_easter_egg", 20, 20),
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
58 # fox bits
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
59 ("fox", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
60 ("ninja_fox", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
61 ("sapper_fox", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
62 ("rinkhals", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
63 # buildings
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
64 ("henhouse", 60, 40),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
65 ("select_henhouse", 60, 40),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
66 ("hendominium", 40, 60),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
67 ("select_hendominium", 40, 60),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
68 ("watchtower", 40, 40),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
69 ("select_watchtower", 40, 40),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
70 # special effects
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
71 ("muzzle_flash", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
72 ("chkn_death", 20, 20),
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
73 ("fox_death", 20, 20),
263
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 261
diff changeset
74 ("boom1", 20, 20),
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 261
diff changeset
75 ("boom2", 20, 20),
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 261
diff changeset
76 ("boom3", 20, 20),
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 261
diff changeset
77 ("boom4", 20, 20),
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
78 ]
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
79
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
80 if __name__ == "__main__":
33
c8436f1752d7 Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
81 process_svg_folder("data/tiles", 20, 20)
81
8a46055c7d08 regenerate icons as well
Neil Muller <drnlmuller@gmail.com>
parents: 61
diff changeset
82 process_svg_folder("data/icons", 40, 40)
261
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
83 for name, width, height in SPRITES:
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
84 process_sprite(name, width, height, SPRITE_PATH)
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
85 process_sprite("splash", 800, 600, IMAGE_PATH)
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
86 process_sprite("gameover_win", 800, 600, IMAGE_PATH)
86291107d67a Make regenerate_pngs more import-friendly.
Jeremy Thurgood <firxen@gmail.com>
parents: 258
diff changeset
87 process_sprite("gameover_lose", 800, 600, IMAGE_PATH)