diff options
author | Doug Zongker <dougz@android.com> | 2011-03-04 16:28:48 -0800 |
---|---|---|
committer | Doug Zongker <dougz@android.com> | 2011-03-04 17:13:16 -0800 |
commit | 68189f2994690538b6e3bddc3788cb092cbda088 (patch) | |
tree | a117ef5e2cb4f6b0d380cb444784f73eaffd0403 /minui | |
parent | 73bb6f749f7f70f1cba2b84d821ac7400c24fbbc (diff) | |
download | bootable_recovery-68189f2994690538b6e3bddc3788cb092cbda088.zip bootable_recovery-68189f2994690538b6e3bddc3788cb092cbda088.tar.gz bootable_recovery-68189f2994690538b6e3bddc3788cb092cbda088.tar.bz2 |
allow paletted RGB images in recovery
Recovery assumes any paletted images are in RGBA format. Make it
handle both RGB and RGBA paletted images.
Bug: 3514884
Change-Id: I517cd571aa3f434dacacc33a774236260aec20ef
Diffstat (limited to 'minui')
-rw-r--r-- | minui/resources.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/minui/resources.c b/minui/resources.c index 2170dca..b437a87 100644 --- a/minui/resources.c +++ b/minui/resources.c @@ -121,12 +121,17 @@ int res_create_surface(const char* name, gr_surface* pSurface) { surface->format = (channels == 3) ? GGL_PIXEL_FORMAT_RGBX_8888 : GGL_PIXEL_FORMAT_RGBA_8888; + int alpha = 0; if (color_type == PNG_COLOR_TYPE_PALETTE) { - png_set_palette_to_rgb(png_ptr); + png_set_palette_to_rgb(png_ptr); + } + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { + png_set_tRNS_to_alpha(png_ptr); + alpha = 1; } int y; - if (channels == 3) { + if (channels == 3 || (channels == 1 && !alpha)) { for (y = 0; y < height; ++y) { unsigned char* pRow = pData + y * stride; png_read_row(png_ptr, pRow, NULL); |