Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: scripts/bitmaps/make_bmp_images.sh

Issue 3152020: Adding a tool to embed a URL into the BIOS bitmaps. (Closed) Base URL: http://src.chromium.org/git/vboot_reference.git
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/bitmaps/originals/BlankBmp.gif » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash -e
2 #
3 # This adds text to our non-labeled recovery images.
4 #
5 # The source images should be 1366x800, with the expectation they'll be cropped
6 # to 1366x768 or 1280x800, have 2 lines of text overlayed at the bottom, and
7 # then be resized to 800x600 so that the BIOS can then display them stretched
8 # to the full screen size.
9 #
10
11 # Require one arg
12 if [ $# -ne "1" ]; then
13 echo "Usage: $(basename $0) URL" 1>&2
14 exit 1
15 fi
16 url=$1
17
18
19 # Image parameters
20 geom_orig='1366x800'
21 geom_crop_a='1366x768'
22 geom_crop_b='1280x800'
23 geom_final='800x600!'
24 font="Helvetica-Narrow"
25 pointsize=30
26
27
28 # Temporary files
29 tmpdir=$(mktemp -d /tmp/tmp.XXXXXXXXX)
30 trap "rm -rf $tmpdir" EXIT
31 img_orig="${tmpdir}/img_orig.bmp"
32 img_crop_a="${tmpdir}/img_crop_a.bmp"
33 img_crop_b="${tmpdir}/img_crop_b.bmp"
34 img_txt_a="${tmpdir}/img_txt_a.bmp"
35 img_txt_b="${tmpdir}/img_txt_b.bmp"
36 label_file="${tmpdir}/label.txt"
37
38 # Output directories
39 outdir_a=$(dirname $0)/out_${geom_crop_a}
40 [ -d "$outdir_a" ] || mkdir -p "$outdir_a"
41 outdir_b=$(dirname $0)/out_${geom_crop_b}
42 [ -d "$outdir_b" ] || mkdir -p "$outdir_b"
43
44
45 function find_background_color {
46 src_img=$1
47 convert "$src_img" -crop '1x1+10+10!' txt:- | \
48 perl -n -e 'print "$1" if m/(#[0-9a-f]+)/i;'
49 }
50
51 function process_one_file {
52 src_img=$1
53
54 # Figure out the filenames to use
55 txt_file=${src_img%*.gif}.txt
56 root=$(basename "$src_img")
57 root=${root%*.*}
58 # one more layer of heirarchy to match BIOS source tree
59 dst_dir_a="${outdir_a}/${root}"
60 [ -d "$dst_dir_a" ] || mkdir -p "$dst_dir_a"
61 dst_dir_b="${outdir_b}/${root}"
62 [ -d "$dst_dir_b" ] || mkdir -p "$dst_dir_b"
63 dst_img_a="${dst_dir_a}/${root}.bmp"
64 dst_img_b="${dst_dir_b}/${root}.bmp"
65 echo "processing $root ..."
66
67 # First, make sure we start with the right-size original
68 bg=$(find_background_color "$src_img")
69 convert "$src_img" -background "$bg" \
70 -gravity center -extent $geom_orig "$img_orig"
71
72 # Now crop that to the two target sizes
73 convert "$img_orig" -gravity Center \
74 -crop "$geom_crop_a"+0+0 +repage "$img_crop_a"
75 convert "$img_orig" -gravity Center \
76 -crop "$geom_crop_b"+0+0 +repage "$img_crop_b"
77
78 # Add the labels in
79 if [ -r "$txt_file" ]; then
80 # Replace all '$URL' in the URL in the text file with the real url
81 perl -p \
82 -e 'BEGIN {$/ = ""; $url = shift; }' \
83 -e 'chomp; s/\$URL/$url/gse;' \
84 -e 'END {print "\n";}' "$url" "$txt_file" > "$label_file"
85 # Render it
86 convert "$img_crop_a" -fill white \
87 -font "$font" -pointsize "$pointsize" -interline-spacing 5 \
88 -gravity south -annotate '+0+10' '@'"$label_file" "$img_txt_a"
89 convert "$img_crop_b" -fill white \
90 -font "$font" -pointsize "$pointsize" -interline-spacing 5 \
91 -gravity south -annotate '+0+10' '@'"$label_file" "$img_txt_b"
92 else
93 mv "$img_crop_a" "$img_txt_a"
94 mv "$img_crop_b" "$img_txt_b"
95 fi
96
97 # Now scale the result to the final size
98 convert "$img_txt_a" -scale "$geom_final" -alpha off "$dst_img_a"
99 convert "$img_txt_b" -scale "$geom_final" -alpha off "$dst_img_b"
100 }
101
102
103 # Do it.
Randall Spangler 2010/08/16 15:45:56 (process all files)
104 for file in originals/*.gif; do
105 process_one_file "$file"
106 done
OLDNEW
« no previous file with comments | « no previous file | scripts/bitmaps/originals/BlankBmp.gif » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698