summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hyundo Moon <hdmoon@google.com> 2017-01-26 04:55:56 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-01-26 04:55:59 +0000
commit27c793146d3e3440b95f45dcf17de80d77192f80 (patch)
tree3ff12832472df8d7dc8bf50fdfcbedf06cc1faeb
parent5894f5483ae9b23e9c6aa4775df895ee9d7e8752 (diff)
parent644e1375e80738d3c14108406937d5317b02ce2e (diff)
Merge "ExifInterface: Accept decimal values for RATIONAL formats"
-rw-r--r--media/java/android/media/ExifInterface.java12
1 files changed, 6 insertions, 6 deletions
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java
index 52d5b7ca9188..71f779073703 100644
--- a/media/java/android/media/ExifInterface.java
+++ b/media/java/android/media/ExifInterface.java
@@ -1597,8 +1597,8 @@ public class ExifInterface {
final Rational[] rationalArray = new Rational[values.length];
for (int j = 0; j < values.length; ++j) {
final String[] numbers = values[j].split("/");
- rationalArray[j] = new Rational(Long.parseLong(numbers[0]),
- Long.parseLong(numbers[1]));
+ rationalArray[j] = new Rational((long) Double.parseDouble(numbers[0]),
+ (long) Double.parseDouble(numbers[1]));
}
mAttributes[i].put(tag,
ExifAttribute.createURational(rationalArray, mExifByteOrder));
@@ -1609,8 +1609,8 @@ public class ExifInterface {
final Rational[] rationalArray = new Rational[values.length];
for (int j = 0; j < values.length; ++j) {
final String[] numbers = values[j].split("/");
- rationalArray[j] = new Rational(Long.parseLong(numbers[0]),
- Long.parseLong(numbers[1]));
+ rationalArray[j] = new Rational((long) Double.parseDouble(numbers[0]),
+ (long) Double.parseDouble(numbers[1]));
}
mAttributes[i].put(tag,
ExifAttribute.createSRational(rationalArray, mExifByteOrder));
@@ -3442,8 +3442,8 @@ public class ExifInterface {
String[] rationalNumber = entryValue.split("/");
if (rationalNumber.length == 2) {
try {
- long numerator = Long.parseLong(rationalNumber[0]);
- long denominator = Long.parseLong(rationalNumber[1]);
+ long numerator = (long) Double.parseDouble(rationalNumber[0]);
+ long denominator = (long) Double.parseDouble(rationalNumber[1]);
if (numerator < 0L || denominator < 0L) {
return new Pair<>(IFD_FORMAT_SRATIONAL, -1);
}