diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-07-06 01:31:29 -0600 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-07-06 01:31:29 -0600 |
commit | 96e833287108de4dbcab48bab30637a9d751de43 (patch) | |
tree | 88dbf59a1a89b183bc7049fff02e30cf229a9794 | |
parent | 17b1263029655fee3611f92993ae864d8acd1d1d (diff) | |
parent | 2006781dcbfb7a7885922d5ccb94e41b55b7e9ed (diff) | |
download | android_packages_apps_Snap-96e833287108de4dbcab48bab30637a9d751de43.tar.gz android_packages_apps_Snap-96e833287108de4dbcab48bab30637a9d751de43.tar.bz2 android_packages_apps_Snap-96e833287108de4dbcab48bab30637a9d751de43.zip |
Merge 2006781dcbfb7a7885922d5ccb94e41b55b7e9ed on remote branch
Change-Id: Ic93d1c84122b5aaf6b852f0797badf124d12ed5f
-rw-r--r-- | src/com/android/camera/Storage.java | 5 | ||||
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 21 |
2 files changed, 23 insertions, 3 deletions
diff --git a/src/com/android/camera/Storage.java b/src/com/android/camera/Storage.java index ab2f818ab..372571a80 100644 --- a/src/com/android/camera/Storage.java +++ b/src/com/android/camera/Storage.java @@ -117,6 +117,11 @@ public class Storage { String path = generateFilepath(title, mimeType); int size = writeFile(path, jpeg, exif, mimeType); + // Try to get the real image size after add exif. + File f = new File(path); + if (f.exists() && f.isFile()) { + size = (int) f.length(); + } return addImage(resolver, title, date, location, orientation, size, path, width, height, mimeType); } diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 51c91cfe5..7201a7f8c 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -124,6 +124,7 @@ public class CameraUtil { public static final int RATIO_UNKNOWN = 0; public static final int RATIO_16_9 = 1; public static final int RATIO_4_3 = 2; + public static final int RATIO_3_2 = 3; public static boolean isSupported(String value, List<String> supported) { return supported == null ? false : supported.indexOf(value) >= 0; @@ -1089,6 +1090,8 @@ public class CameraUtil { return RATIO_4_3; } else if (ratio > 1.77f && ratio < 1.78f) { return RATIO_16_9; + } else if (ratio > 1.49f && ratio < 1.51f) { + return RATIO_3_2; } else { return RATIO_UNKNOWN; } @@ -1109,11 +1112,23 @@ public class CameraUtil { diffFrom_16_9 = 1 / diffFrom_16_9; } - if (diffFrom_4_3 < diffFrom_16_9) { - return RATIO_4_3; + float diffFrom_3_2 = ((float) 3 / 2) / ratio; + if (diffFrom_3_2 < 1) { + diffFrom_3_2 = 1 / diffFrom_3_2; + } + int retRatio = RATIO_UNKNOWN; + float minDiffRatio = diffFrom_3_2; + if (diffFrom_3_2 < diffFrom_4_3) { + retRatio = RATIO_3_2; + minDiffRatio = diffFrom_3_2; } else { - return RATIO_16_9; + retRatio = RATIO_4_3; + minDiffRatio = diffFrom_4_3; + } + if (minDiffRatio > diffFrom_16_9) { + retRatio = RATIO_16_9; } + return retRatio; } } |