From 7f281321c93cb4735f3a59d5c3bd202c8c9382cb Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Mon, 30 Jun 2014 00:10:54 +0000 Subject: [PATCH] graphics: Generate HELP screens programatically. Decompose the help screen into three parts: the background, the text and the title. Generate all except the main text programatically: the background as a color transformed version of the INTERPIC graphic and the title using the textgen tool. --- graphics/cph/help.gif | Bin 33362 -> 0 bytes graphics/cph/readme.txt | 5 ----- graphics/help.gif | 2 +- graphics/text/.gitignore | 1 + graphics/text/Makefile | 19 ++++++++++++++----- graphics/text/config.py | 6 ++++++ graphics/text/helptext.gif | Bin 0 -> 2613 bytes graphics/text/textgen | 34 ++++++++++++---------------------- 8 files changed, 34 insertions(+), 33 deletions(-) delete mode 100644 graphics/cph/help.gif delete mode 100644 graphics/cph/readme.txt create mode 100644 graphics/text/helptext.gif diff --git a/graphics/cph/help.gif b/graphics/cph/help.gif deleted file mode 100644 index b7e28ac36bae521eb625057eeef7f6d5bdbc0404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33362 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
Ie}~bc{|%r#J>kh)OA?I7-5z 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 X$`W4q$WOlVm(Tp>JOBCZjsO5V4Uqmu literal 0 HcmV?d00001 diff --git a/graphics/text/textgen b/graphics/text/textgen index e2794d7e..bfa67550 100755 --- a/graphics/text/textgen +++ b/graphics/text/textgen @@ -208,20 +208,6 @@ class Font(object): return command_line - def render_transparent_text(self, text, output_filename, color): - """Render the given text to the given output file. - - The rendered text is generated with a transparent background. - """ - - if UPPERCASE_FONT: - text = text.upper() - command_line = self._make_command_line(text, color) - - command_line.append(output_filename) - - invoke_command(command_line) - def render_text(self, text, output_filename, color=COLOR_WHITE, bgcolor=BACKGROUND_COLOR): """Render text to a file with the given background color.""" @@ -230,16 +216,19 @@ class Font(object): text = text.upper() command_line = self._make_command_line(text, color) - command_line.extend([ - '-background', bgcolor, '-flatten', - output_filename]) + if bgcolor is not None: + command_line.extend([ + '-background', bgcolor, '-flatten']) + + command_line.append(output_filename) invoke_command(command_line) -def generate_graphics(graphics, color=COLOR_WHITE): +def generate_graphics(graphics, color=COLOR_WHITE, bgcolor=BACKGROUND_COLOR): for name, text in sorted(graphics.items()): print("# %s.gif: '%s'" % (name, text)) - font.render_text(text, '%s.gif' % name, color=color) + font.render_text(text, '%s.gif' % name, + color=color, bgcolor=bgcolor) def generate_kerning_test(): pairs = [] @@ -257,7 +246,8 @@ font = Font('fontchars', kerning_table=FONT_KERNING_RULES) # Enable to generate test image file for tweaking kerning values: #generate_kerning_test() -generate_graphics(red_graphics, COLOR_RED) -generate_graphics(blue_graphics, COLOR_BLUE) -generate_graphics(white_graphics, COLOR_WHITE) +generate_graphics(red_graphics, color=COLOR_RED) +generate_graphics(blue_graphics, color=COLOR_BLUE) +generate_graphics(white_graphics, color=COLOR_WHITE) +generate_graphics(transparent_graphics, color=COLOR_RED, bgcolor=None)