Mercurial > rinkhals
annotate regenerate-pngs.py @ 158:baf857805867
armour works now
author | Adrianna Pińska <adrianna.pinska@gmail.com> |
---|---|
date | Thu, 03 Sep 2009 21:50:49 +0000 |
parents | 3381af605912 |
children | 8a11bbafa07f |
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 |
18
53960047c186
Script for generating .png images from .svg.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
38 if __name__ == "__main__": |
33
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
39 tile_path = "data/tiles" |
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
40 sprite_path = "data/sprites" |
121 | 41 image_path = "data/images" |
33
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
42 sprites = [ |
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
43 ("chkn", 20, 20), |
150
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
44 ("select_chkn", 20, 20), |
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
45 ("chkn_death", 20, 20), |
48
030bea282f28
Add egg to sprite images generated.
Simon Cross <hodgestar@gmail.com>
parents:
33
diff
changeset
|
46 ("egg", 20, 20), |
33
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
47 ("fox", 20, 20), |
150
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
48 ("fox_death", 20, 20), |
126
73e13216d7bb
equipped weapons; ninja fox
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
121
diff
changeset
|
49 ("ninja_fox", 20, 20), |
73e13216d7bb
equipped weapons; ninja fox
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
121
diff
changeset
|
50 ("equip_rifle", 20, 20), |
73e13216d7bb
equipped weapons; ninja fox
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
121
diff
changeset
|
51 ("equip_knife", 20, 20), |
150
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
52 ("muzzle_flash", 20, 20), |
134 | 53 ("kevlar", 20, 20), |
54 ("helmet", 20, 20), | |
33
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
55 ("henhouse", 60, 40), |
150
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
56 ("select_henhouse", 60, 40), |
132 | 57 ("hendominium", 40, 60), |
150
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
58 ("select_hendominium", 40, 60), |
61 | 59 ("watchtower", 40, 40), |
150
89d2360d4350
select chicken, henhouse, hendominium or watchtower; fox death, chicken death; muzzle flash
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
134
diff
changeset
|
60 ("select_watchtower", 40, 40), |
117 | 61 ("chknnest", 20, 20), |
62 ("emptynest", 20, 20), | |
33
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
63 ] |
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
64 |
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
65 process_svg_folder("data/tiles", 20, 20) |
81 | 66 process_svg_folder("data/icons", 40, 40) |
33
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
67 for name, width, height in sprites: |
c8436f1752d7
Add special handling for different sized sprites.
Simon Cross <hodgestar@gmail.com>
parents:
18
diff
changeset
|
68 process_sprite(name, width, height, sprite_path) |
121 | 69 process_sprite("splash", 800, 600, image_path) |
155
3381af605912
game over splash screens
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
150
diff
changeset
|
70 process_sprite("gameover_win", 800, 600, image_path) |
3381af605912
game over splash screens
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
150
diff
changeset
|
71 process_sprite("gameover_lose", 800, 600, image_path) |