summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chih-Chung Chang <chihchung@google.com> 2011-11-08 07:04:36 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2011-11-08 07:04:36 +0000
commit30885bd4799d16c4ffc0ab609e649dad8ed6119c (patch)
tree79fc377d6b53f6a22c76cc2cfe42239b44f65252
parent977442c48740a1b2edd4e95a21afe1d0033f1ef4 (diff)
parent713c9a331e226c970af57c59ff17be29b73025c1 (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-xmedia/java/android/media/videoeditor/MediaImageItem.java27
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;
+ }
}