diff options
Diffstat (limited to '')
25 files changed, 111 insertions, 11 deletions
diff --git a/make-overlay.py b/make-overlay.py new file mode 100644 index 000000000..7f931b373 --- /dev/null +++ b/make-overlay.py @@ -0,0 +1,102 @@ +# Copyright (C) 2011 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Script to take a set of frames (PNG files) for a recovery +"installing" icon animation and turn it into a base image plus a set +of overlays, as needed by the recovery UI code. Run with the names of +all the input frames on the command line, in order.""" + +import sys +try: + import Image +except ImportError: + print "This script requires the Python Imaging Library to be installed." + sys.exit(1) + +# Find the smallest box that contains all the pixels which change +# between images. + +print "reading", sys.argv[1] +base = Image.open(sys.argv[1]) + +minmini = base.size[0]-1 +maxmaxi = 0 +minminj = base.size[1]-1 +maxmaxj = 0 + +for top_name in sys.argv[2:]: + print "reading", top_name + top = Image.open(top_name) + + assert base.size == top.size + + mini = base.size[0]-1 + maxi = 0 + minj = base.size[1]-1 + maxj = 0 + + h, w = base.size + for j in range(w): + for i in range(h): + b = base.getpixel((i,j)) + t = top.getpixel((i,j)) + if b != t: + if i < mini: mini = i + if i > maxi: maxi = i + if j < minj: minj = j + if j > maxj: maxj = j + + minmini = min(minmini, mini) + maxmaxi = max(maxmaxi, maxi) + minminj = min(minminj, minj) + maxmaxj = max(maxmaxj, maxj) + +w = maxmaxi - minmini + 1 +h = maxmaxj - minminj + 1 + +# Now write out an image containing just that box, for each frame. + +for num, top_name in enumerate(sys.argv[1:]): + top = Image.open(top_name) + + out = Image.new("RGB", (w, h)) + for i in range(w): + for j in range(h): + t = top.getpixel((i+minmini, j+minminj)) + out.putpixel((i, j), t) + + fn = "icon_installing_overlay%02d.png" % (num+1,) + out.save(fn) + print "saved", fn + +# Write out the base icon, which is the first frame with that box +# blacked out (just to make the file smaller, since it's always +# displayed with one of the overlays on top of it). + +for i in range(w): + for j in range(h): + base.putpixel((i+minmini, j+minminj), (0, 0, 0)) +fn = "icon_installing.png" +base.save(fn) +print "saved", fn + +# The device_ui_init() function needs to tell the recovery UI the +# position of the overlay box. + +print +print "add this to your device_ui_init() function:" +print "-" * 40 +print " ui_parameters->install_overlay_offset_x = %d;" % (minmini,) +print " ui_parameters->install_overlay_offset_y = %d;" % (minminj,) +print "-" * 40 diff --git a/res/images/icon_error.png b/res/images/icon_error.png Binary files differindex 90c8d878a..6cfcc8a61 100755..100644 --- a/res/images/icon_error.png +++ b/res/images/icon_error.png diff --git a/res/images/icon_installing.png b/res/images/icon_installing.png Binary files differindex d428f57d1..2866b044a 100755..100644 --- a/res/images/icon_installing.png +++ b/res/images/icon_installing.png diff --git a/res/images/icon_installing_overlay01.png b/res/images/icon_installing_overlay01.png Binary files differnew file mode 100644 index 000000000..c71d8406f --- /dev/null +++ b/res/images/icon_installing_overlay01.png diff --git a/res/images/icon_installing_overlay02.png b/res/images/icon_installing_overlay02.png Binary files differnew file mode 100644 index 000000000..4c97c7822 --- /dev/null +++ b/res/images/icon_installing_overlay02.png diff --git a/res/images/icon_installing_overlay03.png b/res/images/icon_installing_overlay03.png Binary files differnew file mode 100644 index 000000000..ff4ee946f --- /dev/null +++ b/res/images/icon_installing_overlay03.png diff --git a/res/images/icon_installing_overlay04.png b/res/images/icon_installing_overlay04.png Binary files differnew file mode 100644 index 000000000..48998ce5b --- /dev/null +++ b/res/images/icon_installing_overlay04.png diff --git a/res/images/icon_installing_overlay05.png b/res/images/icon_installing_overlay05.png Binary files differnew file mode 100644 index 000000000..9f056b1e5 --- /dev/null +++ b/res/images/icon_installing_overlay05.png diff --git a/res/images/icon_installing_overlay06.png b/res/images/icon_installing_overlay06.png Binary files differnew file mode 100644 index 000000000..e5872fd6c --- /dev/null +++ b/res/images/icon_installing_overlay06.png diff --git a/res/images/icon_installing_overlay07.png b/res/images/icon_installing_overlay07.png Binary files differnew file mode 100644 index 000000000..4ad8bf3ec --- /dev/null +++ b/res/images/icon_installing_overlay07.png diff --git a/res/images/indeterminate01.png b/res/images/indeterminate01.png Binary files differnew file mode 100644 index 000000000..84f04b0d2 --- /dev/null +++ b/res/images/indeterminate01.png diff --git a/res/images/indeterminate02.png b/res/images/indeterminate02.png Binary files differnew file mode 100644 index 000000000..21d012168 --- /dev/null +++ b/res/images/indeterminate02.png diff --git a/res/images/indeterminate03.png b/res/images/indeterminate03.png Binary files differnew file mode 100644 index 000000000..8a190a8c6 --- /dev/null +++ b/res/images/indeterminate03.png diff --git a/res/images/indeterminate04.png b/res/images/indeterminate04.png Binary files differnew file mode 100644 index 000000000..baf8d63e4 --- /dev/null +++ b/res/images/indeterminate04.png diff --git a/res/images/indeterminate05.png b/res/images/indeterminate05.png Binary files differnew file mode 100644 index 000000000..5653c7b06 --- /dev/null +++ b/res/images/indeterminate05.png diff --git a/res/images/indeterminate06.png b/res/images/indeterminate06.png Binary files differnew file mode 100644 index 000000000..858de85a5 --- /dev/null +++ b/res/images/indeterminate06.png diff --git a/res/images/indeterminate1.png b/res/images/indeterminate1.png Binary files differdeleted file mode 100644 index 90cb9fba9..000000000 --- a/res/images/indeterminate1.png +++ /dev/null diff --git a/res/images/indeterminate2.png b/res/images/indeterminate2.png Binary files differdeleted file mode 100644 index f7fb28989..000000000 --- a/res/images/indeterminate2.png +++ /dev/null diff --git a/res/images/indeterminate3.png b/res/images/indeterminate3.png Binary files differdeleted file mode 100644 index ba10dfa53..000000000 --- a/res/images/indeterminate3.png +++ /dev/null diff --git a/res/images/indeterminate4.png b/res/images/indeterminate4.png Binary files differdeleted file mode 100644 index ad5d9a542..000000000 --- a/res/images/indeterminate4.png +++ /dev/null diff --git a/res/images/indeterminate5.png b/res/images/indeterminate5.png Binary files differdeleted file mode 100644 index 8c19c8d57..000000000 --- a/res/images/indeterminate5.png +++ /dev/null diff --git a/res/images/indeterminate6.png b/res/images/indeterminate6.png Binary files differdeleted file mode 100644 index c0c66386a..000000000 --- a/res/images/indeterminate6.png +++ /dev/null diff --git a/res/images/progress_empty.png b/res/images/progress_empty.png Binary files differindex 4cb4998dd..c6820159b 100644 --- a/res/images/progress_empty.png +++ b/res/images/progress_empty.png diff --git a/res/images/progress_fill.png b/res/images/progress_fill.png Binary files differindex eb71754db..9748435f5 100644 --- a/res/images/progress_fill.png +++ b/res/images/progress_fill.png @@ -39,10 +39,10 @@ #define UI_WAIT_KEY_TIMEOUT_SEC 120 UIParameters ui_parameters = { - 6, // indeterminate progress bar frames - 15, // fps - 0, // installation icon frames (0 == static image) - 0, 0, // installation icon overlay offset + 6, // indeterminate progress bar frames + 20, // fps + 7, // installation icon frames (0 == static image) + 23, 83, // installation icon overlay offset }; static pthread_mutex_t gUpdateMutex = PTHREAD_MUTEX_INITIALIZER; @@ -386,10 +386,8 @@ void ui_init(void) sizeof(gr_surface)); for (i = 0; i < ui_parameters.indeterminate_frames; ++i) { char filename[40]; - // "indeterminateN" if fewer than 10 frames, else "indeterminateNN". - sprintf(filename, "indeterminate%0*d", - ui_parameters.indeterminate_frames < 10 ? 1 : 2, - i+1); + // "indeterminate01.png", "indeterminate02.png", ... + sprintf(filename, "indeterminate%02d", i+1); int result = res_create_surface(filename, gProgressBarIndeterminate+i); if (result < 0) { LOGE("Missing bitmap %s\n(Code %d)\n", filename, result); @@ -401,9 +399,9 @@ void ui_init(void) sizeof(gr_surface)); for (i = 0; i < ui_parameters.installing_frames; ++i) { char filename[40]; - sprintf(filename, "icon_installing_overlay%0*d", - ui_parameters.installing_frames < 10 ? 1 : 2, - i+1); + // "icon_installing_overlay01.png", + // "icon_installing_overlay02.png", ... + sprintf(filename, "icon_installing_overlay%02d", i+1); int result = res_create_surface(filename, gInstallationOverlay+i); if (result < 0) { LOGE("Missing bitmap %s\n(Code %d)\n", filename, result); |