| #!/bin/bash -e |
| # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Render a text file into a bitmap. Files named '*.txt' are small font, those |
| # named '*.TXT' are large font. |
| # |
| # Options: |
| # |
| # --rtl Render right-to-left languages |
| # --font=FONTNAME Use specified font (instead of Helvetica) |
| # |
| font="Droid Sans" |
| rtl="" |
| point=22 |
| |
| while true ; do |
| case "$1" in |
| --rtl) |
| rtl="--rtl" |
| shift |
| ;; |
| --font=*) |
| font="${1##*=}" |
| shift |
| ;; |
| --point=*) |
| point="${1##*=}" |
| shift |
| ;; |
| *) |
| break |
| ;; |
| esac |
| done |
| |
| |
| # Image parameters |
| # - New pango-view has --pixel to assign font size in pixel, but that is not |
| # supported by old (ex, 1.24.5 in chroot) so we must assign --dpi 72 for |
| # pointsize. |
| bg='#607c91' |
| small_color='#9ccaec' |
| small_font="$font" |
| small_pointsize="$point" |
| large_color="white" |
| large_font="$font" |
| large_pointsize=40 |
| |
| for txtfile in $*; do |
| # pango-view does not support assigning output format options for bitmap, so |
| # we first create the images in PNG format and then convert into BMP by |
| # ImageMagick. |
| pngfile="${txtfile%.*}".png |
| bmpfile="${txtfile%.*}".bmp |
| case "$txtfile" in |
| *.txt) |
| pango-view -q $rtl --no-auto-dir \ |
| --background "$bg" --foreground "$small_color" \ |
| --font "$small_font $small_pointsize" --dpi 72 \ |
| --margin=3 --align=center \ |
| --output "$pngfile" \ |
| "$txtfile" |
| convert -colors 256 -compress none -alpha off "$pngfile" BMP3:"$bmpfile" |
| rm -f "$pngfile" |
| echo "wrote $bmpfile" |
| ;; |
| *.TXT) |
| pango-view -q $rtl --no-auto-dir \ |
| --background "$bg" --foreground "$large_color" \ |
| --font "$large_font $large_pointsize" --dpi 72 \ |
| --margin=10 --align=center \ |
| --output "$pngfile" \ |
| "$txtfile" |
| convert -colors 256 -compress none -alpha off "$pngfile" BMP3:"$bmpfile" |
| rm -f "$pngfile" |
| echo "wrote $bmpfile" |
| ;; |
| *) |
| echo "Ignoring $txtfile. Filename should end with .txt or .TXT" |
| ;; |
| esac |
| done |