diff options
Diffstat (limited to 'data/convert-icon')
-rwxr-xr-x | data/convert-icon | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/data/convert-icon b/data/convert-icon new file mode 100755 index 00000000..16412378 --- /dev/null +++ b/data/convert-icon @@ -0,0 +1,74 @@ +#!/usr/bin/python +# +# $Id: convert-icon 704 2006-10-18 00:51:11Z fraggle $ +# +# Copyright(C) 2005 Simon Howard +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. +# +# Converts images into C structures to be inserted in programs +# + +import sys +import os +import re + +try: + import Image +except ImportError: + print "WARNING: Could not update %s. Please install the Python Image library." % sys.argv[2] + sys.exit(0) + + +def convert_image(filename, output_filename): + + im = Image.open(filename).convert("RGB") + + outfile = open(output_filename, "w") + + size = im.size + + struct_name = os.path.basename(filename) + struct_name = re.sub(re.compile("\\..*$"), "", struct_name) + struct_name = re.sub(re.compile("\W"), "_", struct_name) + + outfile.write("static int %s_w = %i;\n" % (struct_name, size[0])) + outfile.write("static int %s_h = %i;\n" % (struct_name, size[1])) + + outfile.write("\n") + outfile.write("static unsigned char %s_data[] = {\n" % (struct_name)) + + elements_on_line = 0 + + outfile.write(" ") + + for y in range(size[1]): + for x in range(size[0]): + val = im.getpixel((x, y)) + outfile.write("0x%02x,0x%02x,0x%02x, " % val) + elements_on_line += 1 + + if elements_on_line >= 4: + elements_on_line = 0 + outfile.write("\n") + outfile.write(" ") + + outfile.write("\n") + outfile.write("};\n") + +convert_image(sys.argv[1], sys.argv[2]) + + |