diff options
| author | 2011-11-08 07:04:36 +0000 | |
|---|---|---|
| committer | 2011-11-08 07:04:36 +0000 | |
| commit | 30885bd4799d16c4ffc0ab609e649dad8ed6119c (patch) | |
| tree | 79fc377d6b53f6a22c76cc2cfe42239b44f65252 | |
| parent | 977442c48740a1b2edd4e95a21afe1d0033f1ef4 (diff) | |
| parent | 713c9a331e226c970af57c59ff17be29b73025c1 (diff) | |
am 713c9a33: Merge "Fix 5509346: Resize the thumbnails if it\'s too large." into ics-mr1
* commit '713c9a331e226c970af57c59ff17be29b73025c1':
Fix 5509346: Resize the thumbnails if it's too large.
| -rwxr-xr-x | media/java/android/media/videoeditor/MediaImageItem.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java index a862d003ce50..590b4ae223d5 100755 --- a/media/java/android/media/videoeditor/MediaImageItem.java +++ b/media/java/android/media/videoeditor/MediaImageItem.java @@ -154,7 +154,7 @@ public class MediaImageItem extends MediaItem { final Bitmap imageBitmap; - if (mHeight > maxResolution.second) { + if (mWidth > maxResolution.first || mHeight > maxResolution.second) { /** * We need to scale the image */ @@ -971,14 +971,13 @@ public class MediaImageItem extends MediaItem { /** * Create the bitmap from file */ - if (nativeWidth / bitmapWidth > 1) { - - final BitmapFactory.Options options = new BitmapFactory.Options(); - options.inSampleSize = nativeWidth / (int)bitmapWidth; - srcBitmap = BitmapFactory.decodeFile(filename, options); - } else { - srcBitmap = BitmapFactory.decodeFile(filename); - } + int sampleSize = (int) Math.ceil(Math.max( + (float) nativeWidth / bitmapWidth, + (float) nativeHeight / bitmapHeight)); + sampleSize = nextPowerOf2(sampleSize); + final BitmapFactory.Options options = new BitmapFactory.Options(); + options.inSampleSize = sampleSize; + srcBitmap = BitmapFactory.decodeFile(filename, options); } else { bitmapWidth = width; bitmapHeight = height; @@ -1009,4 +1008,14 @@ public class MediaImageItem extends MediaItem { srcBitmap.recycle(); return bitmap; } + + public static int nextPowerOf2(int n) { + n -= 1; + n |= n >>> 16; + n |= n >>> 8; + n |= n >>> 4; + n |= n >>> 2; + n |= n >>> 1; + return n + 1; + } } |