changeset 1436:69c777285d58

not just round up but also down to prevent black-pixel border.
author robcast
date Sun, 08 Nov 2015 18:40:38 +0100
parents f4f4ce49c9ac
children 1edc05d955cb
files common/src/main/java/digilib/image/ImageLoaderDocuImage.java
diffstat 1 files changed, 16 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/common/src/main/java/digilib/image/ImageLoaderDocuImage.java	Sun Nov 08 18:37:45 2015 +0100
+++ b/common/src/main/java/digilib/image/ImageLoaderDocuImage.java	Sun Nov 08 18:40:38 2015 +0100
@@ -525,14 +525,24 @@
         double deltaX = targetW - Math.floor(targetW);
         double deltaY = targetH - Math.floor(targetH);
         if (deltaX > epsilon) {
-        	// round up
-        	logger.debug("rounding up x scale factor");
-            scaleX += (1 - deltaX) / imgW;
+        	// round x
+            if (deltaX > 0.5d) {
+                logger.debug("rounding up x scale factor");
+                scaleX += (1 - deltaX) / imgW;
+            } else {
+                logger.debug("rounding down x scale factor");
+                scaleX -= deltaX / imgW;
+            }
         }
         if (deltaY > epsilon) {
-        	// round up
-        	logger.debug("rounding up y scale factor");
-            scaleY += (1 - deltaY) / imgH;
+            // round y
+            if (deltaY > 0.5d) {
+                logger.debug("rounding up y scale factor");
+                scaleY += (1 - deltaY) / imgH;
+            } else {
+                logger.debug("rounding down y scale factor");
+                scaleY -= deltaY / imgH;
+            }
         }
         // scale with AffineTransformOp
         logger.debug("scaled from " + imgW + "x" + imgH + " img=" + img);