From b70e52561a630374beff76cd48ca07ee21ab749a Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Fri, 29 Oct 2021 11:05:24 +0200 Subject: [PATCH] Minor AffineTransformOp clean-up + removed test output. (cherry picked from commit 511a29beb91a8fffd89287b0ae62820b43770afe) --- .../image/AffineTransformOp.java | 16 +++++--- .../image/AffineTransformOpTest.java | 38 +++++++++++-------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/common/common-image/src/main/java/com/twelvemonkeys/image/AffineTransformOp.java b/common/common-image/src/main/java/com/twelvemonkeys/image/AffineTransformOp.java index c9621c51..e98c2e44 100644 --- a/common/common-image/src/main/java/com/twelvemonkeys/image/AffineTransformOp.java +++ b/common/common-image/src/main/java/com/twelvemonkeys/image/AffineTransformOp.java @@ -34,7 +34,13 @@ import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; -import java.awt.image.*; +import java.awt.image.BufferedImage; +import java.awt.image.BufferedImageOp; +import java.awt.image.ColorModel; +import java.awt.image.ImagingOpException; +import java.awt.image.Raster; +import java.awt.image.RasterOp; +import java.awt.image.WritableRaster; /** * This is a drop-in replacement for {@link java.awt.image.AffineTransformOp}. @@ -70,6 +76,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { delegate = new java.awt.image.AffineTransformOp(xform, interpolationType); } + @SuppressWarnings("ConstantConditions") @Override public BufferedImage filter(final BufferedImage src, BufferedImage dst) { try { @@ -80,10 +87,9 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { dst = createCompatibleDestImage(src, src.getColorModel()); } - Graphics2D g2d = null; + Graphics2D g2d = dst.createGraphics(); try { - g2d = dst.createGraphics(); int interpolationType = delegate.getInterpolationType(); if (interpolationType > 0) { @@ -109,9 +115,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp { return dst; } finally { - if (g2d != null) { - g2d.dispose(); - } + g2d.dispose(); } } } diff --git a/common/common-image/src/test/java/com/twelvemonkeys/image/AffineTransformOpTest.java b/common/common-image/src/test/java/com/twelvemonkeys/image/AffineTransformOpTest.java index c1c53f67..057dabb9 100644 --- a/common/common-image/src/test/java/com/twelvemonkeys/image/AffineTransformOpTest.java +++ b/common/common-image/src/test/java/com/twelvemonkeys/image/AffineTransformOpTest.java @@ -30,17 +30,26 @@ package com.twelvemonkeys.image; -import org.junit.Test; +import static java.lang.Math.min; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; -import javax.imageio.ImageTypeSpecifier; import java.awt.color.ColorSpace; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; -import java.awt.image.*; +import java.awt.image.BufferedImage; +import java.awt.image.BufferedImageOp; +import java.awt.image.DataBuffer; +import java.awt.image.ImagingOpException; +import java.awt.image.Raster; +import java.awt.image.RasterOp; import java.util.Arrays; import java.util.List; -import static org.junit.Assert.*; +import javax.imageio.ImageTypeSpecifier; + +import org.junit.Test; /** * AffineTransformOpTest. @@ -101,6 +110,7 @@ public class AffineTransformOpTest { private final int width = 30; private final int height = 20; + private final double anchor = min(width, height) / 2.0; @Test public void testGetPoint2D() { @@ -128,8 +138,8 @@ public class AffineTransformOpTest { @Test public void testFilterRotateBIStandard() { - BufferedImageOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); - BufferedImageOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); + BufferedImageOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); + BufferedImageOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); for (Integer type : TYPES) { BufferedImage image = new BufferedImage(width, height, type); @@ -147,8 +157,8 @@ public class AffineTransformOpTest { @Test public void testFilterRotateBICustom() { - BufferedImageOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); - BufferedImageOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); + BufferedImageOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); + BufferedImageOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); for (ImageTypeSpecifier spec : SPECS) { BufferedImage image = spec.createBufferedImage(width, height); @@ -197,8 +207,8 @@ public class AffineTransformOpTest { @Test public void testFilterRotateRasterStandard() { - RasterOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); - RasterOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); + RasterOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); + RasterOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); for (Integer type : TYPES) { Raster raster = new BufferedImage(width, height, type).getRaster(); @@ -221,8 +231,6 @@ public class AffineTransformOpTest { fail("No result!"); } else { - System.err.println("AffineTransformOpTest.testFilterRotateRasterStandard"); - System.err.println("type: " + type); continue; } } @@ -240,8 +248,8 @@ public class AffineTransformOpTest { @Test public void testFilterRotateRasterCustom() { - RasterOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); - RasterOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); + RasterOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); + RasterOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, anchor, anchor), null); for (ImageTypeSpecifier spec : SPECS) { Raster raster = spec.createBufferedImage(width, height).getRaster(); @@ -264,8 +272,6 @@ public class AffineTransformOpTest { fail("No result!"); } else { - System.err.println("AffineTransformOpTest.testFilterRotateRasterCustom"); - System.err.println("spec: " + spec); continue; } }