diff options
Diffstat (limited to 'eclipse/scripts/gen_icon.py')
-rwxr-xr-x | eclipse/scripts/gen_icon.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/eclipse/scripts/gen_icon.py b/eclipse/scripts/gen_icon.py new file mode 100755 index 000000000..f6274e16e --- /dev/null +++ b/eclipse/scripts/gen_icon.py @@ -0,0 +1,71 @@ +#!/usr/bin/python + +import sys +import StringIO +try: + import Image, ImageDraw, ImageFont +except ImportError, e: + print str(e) + print "Are you missing the Python Imaging Library? (apt-get install python-imaging)" + sys.exit(1) + +FONT_PATH = "/usr/share/fonts/truetype/msttcorefonts/arial.ttf" + +class Args(object): + def __init__(self, dest_name, size, circle_color, border_color, + letter_color, letter): + self.dest_name = dest_name + self.size = size + self.circle_color = circle_color + self.border_color = border_color + self.letter_color = letter_color + self.letter = letter + +def main(args): + data = process_args(args) + if data: + createImage(data) + +def process_args(args): + if not args or len(args) != 6: + usage() + return Args(*args) + +def usage(): + print """Usage: %s <file_name> <size> <circle-color> <border-color> <letter-color> <letter>""" % sys.argv[0] + sys.exit(1) + +def createImage(data): + zoom = 4 + rmin = -zoom/2 + rmax = zoom/2 + if zoom > 1: + r = range(-zoom/2, zoom/2+1) + else: + r = [ 0 ] + sz = int(data.size) + sz4 = sz * zoom + + img = Image.new("RGBA", (sz4, sz4), (255,255,255,0)) + draw = ImageDraw.Draw(img) + + draw.ellipse((0, 0, sz4-zoom, sz4-zoom), + fill=data.circle_color, outline=None) + for i in r: + draw.ellipse((i, i, sz4-i-zoom, sz4-i-zoom), + fill=None, outline=data.border_color) + + font = ImageFont.truetype(FONT_PATH, int(sz4 * .75)) + tsx, tsy = draw.textsize(data.letter, font=font) + + ptx = (sz4 - tsx) / 2 + pty = (sz4 - tsy) / 2 + for i in r: + draw.text((ptx + i, pty), data.letter, font=font, fill=data.letter_color) + + img = img.resize((sz, sz), Image.BICUBIC) + img.save(data.dest_name, "PNG") + print "Saved", data.dest_name + +if __name__ == "__main__": + main(sys.argv[1:]) |