#!/usr/bin/env python
# ImageMagick must be installed to use this script.
convert_exe = r'd:\wheelgen\im\convert.exe'
stroke_color = 'blue'
fill_color = 'yellow'
wheel_font = 'Amstrad-CPC-Extended-Tweak-Regular' # use convert -list font to get proper names
img_size = '300x140'
stroke_width = '1'
import sys, os, re, string
if len(sys.argv) != 3:
print ("usage: %s <hsdb.xml> <output batch file>" % sys.argv[0])
exit(1)
if not os.path.exists(sys.argv[1]):
print ("error: %s does not exist" % sys.argv[1])
exit(1)
game_xml = open(sys.argv[1])
game_count = 0
gamedb = []
while 1:
line = game_xml.readline()
if not line: break
name_match = re.match( r'.*<game name="([^"]*)', line )
if name_match:
game_name = name_match.group(1)
next_line = game_xml.readline()
desc_match = re.match( r'.*<description>([^<^(]*)', next_line )
if desc_match:
game_desc = desc_match.group(1)
game_name = game_name.strip()
game_name = string.replace(game_name,''','\'')
game_name = string.replace(game_name,'&','&')
game_desc = game_desc.strip()
game_desc = string.replace(game_desc,''','\'')
game_desc = string.replace(game_desc,'&','&')
gamedb.append((game_name,game_desc))
game_count += 1
game_xml.close()
batch = open(os.path.abspath(sys.argv[2]),'w')
for game_name, game_desc in gamedb:
cmd = convert_exe +' -background transparent ^\n \
-fill ' + fill_color + '^\n \
-stroke ' + stroke_color + '^\n \
-strokewidth ' + stroke_width + ' ^\n \
-size ' + img_size + ' ^\n \
-font ' + wheel_font + ' ^\n \
-gravity center ^\n \
caption:"' + game_desc + '" ^\n \
-trim ^\n \
( +clone -background black -shadow 100x3 ) ^\n \
+swap ^\n \
+repage ^\n \
-geometry -4-4 ^\n \
-composite ^\n \
"' + game_name + '.png"\n\n'
batch.write(cmd)
print sys.argv[2] + ' written - ' + str(game_count) + ' entries.'
batch.flush()
batch.close()