Fix reading DPI for TIFF files.
Jira issue key: SANSELAN-68
Submitted by: VVD <vvd at pochta dot ru>
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk@1325111 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
index 6958deb..c95556b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
@@ -201,8 +201,8 @@
case 2: // Inch
unitsPerInch = 1.0;
break;
- case 3: // Meter
- unitsPerInch = 0.0254;
+ case 3: // Centimeter
+ unitsPerInch = 2.54;
break;
default:
break;
@@ -223,7 +223,7 @@
{
double XResolutionPixelsPerUnit = xResolutionField
.getDoubleValue();
- physicalWidthDpi = (int) (XResolutionPixelsPerUnit / unitsPerInch);
+ physicalWidthDpi = (int) Math.round((XResolutionPixelsPerUnit * unitsPerInch));
physicalWidthInch = (float) (width / (XResolutionPixelsPerUnit * unitsPerInch));
}
if ((yResolutionField != null)
@@ -231,7 +231,7 @@
{
double YResolutionPixelsPerUnit = yResolutionField
.getDoubleValue();
- physicalHeightDpi = (int) (YResolutionPixelsPerUnit / unitsPerInch);
+ physicalHeightDpi = (int) Math.round((YResolutionPixelsPerUnit * unitsPerInch));
physicalHeightInch = (float) (height / (YResolutionPixelsPerUnit * unitsPerInch));
}
}