Mercurial > hg > digilib
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);