From ab96acf97e7c38d214d8f57cee08537cf4533768 Mon Sep 17 00:00:00 2001 From: Tom Wai-Hong Tam Date: Fri, 28 Jan 2011 09:39:31 +0800 Subject: [PATCH] On ARM, we need output geometry same as screen size instead of 800x600 and use 8bpp RLE format to encoding BMP. Also make the script able to run at other directory. BUG=chromium-os:11384 TEST=as follow: $ cd /tmp $ ~/$CHROMEOS/src/platform/vboot_reference/scripts/bitmaps/make_bmp_images.sh 'x86 HWID 1234' '1366x768' true processing BlankBmp ... processing DeveloperBmp ... processing RecoveryBmp ... processing RecoveryMissingOSBmp ... processing RecoveryNoOSBmp ... $ file out_x86_HWID_1234/DeveloperBmp/DeveloperBmp.bmp out_x86_HWID_1234/DeveloperBmp/DeveloperBmp.bmp: PC bitmap, Windows 3.x format, 800 x 600 x 24 $ ~/$CHROMEOS/src/platform/vboot_reference/scripts/bitmaps/make_bmp_images.sh 'arm HWID 1234' '1366x768' false processing BlankBmp ... processing DeveloperBmp ... processing RecoveryBmp ... processing RecoveryMissingOSBmp ... processing RecoveryNoOSBmp ... $ file out_arm_HWID_1234/DeveloperBmp/DeveloperBmp.bmp out_arm_HWID_1234/DeveloperBmp/DeveloperBmp.bmp: PC bitmap, Windows 3.x format, 1366 x 768 x 8 Change-Id: Ia96a4e64f34350f8bd5fec51657d3cec85c4ab1c Review URL: http://codereview.chromium.org/6273012 --- scripts/bitmaps/make_bmp_images.sh | 35 ++++++++++++--------- scripts/bitmaps/{makelines => makelines.sh} | 0 scripts/bitmaps/process_all_targets.sh | 2 +- 3 files changed, 21 insertions(+), 16 deletions(-) rename scripts/bitmaps/{makelines => makelines.sh} (100%) diff --git a/scripts/bitmaps/make_bmp_images.sh b/scripts/bitmaps/make_bmp_images.sh index c944fa07d5..d69c10ed1d 100755 --- a/scripts/bitmaps/make_bmp_images.sh +++ b/scripts/bitmaps/make_bmp_images.sh @@ -6,30 +6,35 @@ # This adds text to our non-labeled recovery images. # # The source images should be 1366x800, with the expectation they'll be cropped -# to 1366x768 or 1280x800, have 2 lines of text overlayed at the bottom, and -# then be resized to 800x600 so that the BIOS can then display them stretched -# to the full screen size. +# to , which is 1366x768 or 1280x800, have 2 lines of text +# overlayed at the bottom, and then be resized to 800x600 if on x86, otherwise +# same as . On x86, resizing to 800x600 because the BIOS can +# then display them stretched to the full screen size. # - - -# Require one arg -if [ $# -ne "2" ]; then - echo "Usage: $(basename $0) " 1>&2 +# Require three args +if [ $# -ne "3" -o \( "$3" != "x86" -a "$3" != "arm" \) ]; then + echo "Usage: $(basename $0) " 1>&2 exit 1 fi -MODEL=$1 +HWID=$1 geom_crop=$2 +geom_final='800x600!' +flag_final= +# If arm, make the final geometry as screen size and use 8bpp rle format. +if [ $3 = "arm" ]; then + geom_final=$2 + flag_final="-colors 256 -compress rle" +fi -nicename=${MODEL// /_} +nicename=${HWID// /_} # Default URL URL='http://google.com/chromeos/recovery' # Image parameters geom_orig='1366x800' -geom_final='800x600!' bluecolor='#9ccaec' bluefont="Helvetica-Narrow" bluepointsize=30 @@ -48,7 +53,7 @@ label_img="${tmpdir}/label.bmp" # Output directories thisdir=$(readlink -e $(dirname $0)) -outdir="${thisdir}/out_${nicename}" +outdir="out_${nicename}" [ -d "$outdir" ] || mkdir -p "$outdir" function find_background_color { @@ -84,7 +89,7 @@ function process_one_file { # The only way to change font and color in multiline text is to split each # line into a separate image and then composite them together. Ugh. # First, split each input line into a separate file. - "${thisdir}/makelines" -u "$URL" -m "$MODEL" -d "$tmpdir" "$txt_file" + "${thisdir}/makelines.sh" -u "$URL" -m "$HWID" -d "$tmpdir" "$txt_file" # Convert each line file into an image file. for txtfile in ${tmpdir}/linetxt_*; do case "$txtfile" in @@ -114,12 +119,12 @@ function process_one_file { fi # Now scale the result to the final size - convert "$img_txt" -scale "$geom_final" -alpha off "$dst_img" + convert "$img_txt" -scale "$geom_final" -alpha off $flag_final "$dst_img" } # Do it. -for file in originals/*.gif; do +for file in ${thisdir}/originals/*.gif; do process_one_file "$file" done diff --git a/scripts/bitmaps/makelines b/scripts/bitmaps/makelines.sh similarity index 100% rename from scripts/bitmaps/makelines rename to scripts/bitmaps/makelines.sh diff --git a/scripts/bitmaps/process_all_targets.sh b/scripts/bitmaps/process_all_targets.sh index 851a524ffc..a290053c9b 100755 --- a/scripts/bitmaps/process_all_targets.sh +++ b/scripts/bitmaps/process_all_targets.sh @@ -63,6 +63,6 @@ for f in $(find "${tree}" -type f -name 'bmp_*_[0-9]*.fv'); do continue ;; esac - ./make_bmp_images.sh "${elements} ${signature}" "${geometry}" + ./make_bmp_images.sh "${elements} ${signature}" "${geometry}" "x86" echo done