| #!/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 |
| # nameed '*.TXT' are large font. |
| # |
| |
| # Image parameters |
| bg='#607c91' |
| bluecolor='#9ccaec' |
| bluefont="Helvetica-Narrow" |
| bluepointsize=19 |
| whitefont="Helvetica-Narrow" |
| whitepointsize=30 |
| |
| |
| tmpdir=$(mktemp -d /tmp/tmp.bmp.XXXXXX) |
| trap "rm -rf $tmpdir" EXIT |
| label_file="${tmpdir}/label.txt" |
| |
| for txtfile in $*; do |
| bmpfile="${txtfile%.*}".bmp |
| # Must strip off the leading U+FEFF byte order mark (bytes 0xEF,0xBB,0xBF) of |
| # each file before I can pass it to imagemagick. Chomp any leading/trailing |
| # whitespace too. |
| perl -p -e 'BEGIN{ $/=undef; }' \ |
| -e 'if (substr($_,0,3) eq "\xef\xbb\xbf") { substr($_, 0, 3) = ""; }' \ |
| -e 's/^\s+//s;' -e 's/\s+$//s;' \ |
| "$txtfile" > "$label_file" |
| |
| case "$txtfile" in |
| *.txt) |
| convert \ |
| -background "$bg" -fill "$bluecolor" \ |
| -font "$bluefont" -pointsize "$bluepointsize" \ |
| -bordercolor "$bg" -border 0x1 -gravity Center \ |
| label:'@'"$label_file" \ |
| -colors 256 -compress none -alpha off \ |
| "$bmpfile" |
| echo "wrote $bmpfile" |
| ;; |
| *.TXT) |
| convert \ |
| -background "$bg" -fill "white" \ |
| -font "$whitefont" -pointsize "$whitepointsize" \ |
| -bordercolor "$bg" -border 0x10 -gravity Center \ |
| label:'@'"$label_file" \ |
| -colors 256 -compress none -alpha off \ |
| "$bmpfile" |
| echo "wrote $bmpfile" |
| ;; |
| *) |
| echo "Ignoring $txtfile. Filname should end with .txt or .TXT" |
| ;; |
| esac |
| done |