diff options
Diffstat (limited to 'src/com/android/camera/util/CameraUtil.java')
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 96ee0d927..50fd13933 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -1153,35 +1153,39 @@ public class CameraUtil { } public static int determinCloseRatio(float ratio) { - if (ratio < 1) { - ratio = 1 / ratio; - } + int retRatio = RATIO_UNKNOWN; - float diffFrom_4_3 = ((float) 4 / 3) / ratio; - if (diffFrom_4_3 < 1) { - diffFrom_4_3 = 1 / diffFrom_4_3; - } + if (ratio != 1.0) { - float diffFrom_16_9 = ((float) 16 / 9) / ratio; - if (diffFrom_16_9 < 1) { - diffFrom_16_9 = 1 / diffFrom_16_9; - } + if (ratio < 1) { + ratio = 1 / ratio; + } - 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 { - retRatio = RATIO_4_3; - minDiffRatio = diffFrom_4_3; - } - if (minDiffRatio > diffFrom_16_9) { - retRatio = RATIO_16_9; + float diffFrom_4_3 = ((float) 4 / 3) / ratio; + if (diffFrom_4_3 < 1) { + diffFrom_4_3 = 1 / diffFrom_4_3; + } + + float diffFrom_16_9 = ((float) 16 / 9) / ratio; + if (diffFrom_16_9 < 1) { + diffFrom_16_9 = 1 / diffFrom_16_9; + } + + float diffFrom_3_2 = ((float) 3 / 2) / ratio; + if (diffFrom_3_2 < 1) { + diffFrom_3_2 = 1 / diffFrom_3_2; + } + float minDiffRatio = diffFrom_3_2; + if (diffFrom_3_2 < diffFrom_4_3) { + retRatio = RATIO_3_2; + minDiffRatio = diffFrom_3_2; + } else { + retRatio = RATIO_4_3; + minDiffRatio = diffFrom_4_3; + } + if (minDiffRatio > diffFrom_16_9) { + retRatio = RATIO_16_9; + } } return retRatio; } |