From 9dc3ed06718253d05e3b67c87faddb46b1413960 Mon Sep 17 00:00:00 2001 From: James Kao Date: Sat, 6 Aug 2016 20:36:47 -0700 Subject: [PATCH] Test image transform optimizations for Rpi --- .../job/AbstractPrintFileProcessor.java | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/host/src/main/java/org/area515/resinprinter/job/AbstractPrintFileProcessor.java b/host/src/main/java/org/area515/resinprinter/job/AbstractPrintFileProcessor.java index 1689d436f..82ae9ea4b 100644 --- a/host/src/main/java/org/area515/resinprinter/job/AbstractPrintFileProcessor.java +++ b/host/src/main/java/org/area515/resinprinter/job/AbstractPrintFileProcessor.java @@ -294,28 +294,34 @@ public BufferedImage applyImageTransforms(DataAid aid, BufferedImage img, int wi throw new IllegalStateException("BufferedImage is null"); } - BufferedImage after = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); - // if(aid.affineTransform.getScaleY() == -1) { - // aid.affineTransform.translate(0., -height); - // } - // after.getMinX() + i - // aid.affineTransform.translate(img.getMinX() - after.getMinX(), img.getMinY() - after.getMinY()); - double yOff = -(height - (aid.affineTransform.getScaleY()*height))/2; - double xOff = -(width - (aid.affineTransform.getScaleX()*width))/2; - aid.affineTransform.translate(xOff, yOff); - AffineTransformOp transOp = - new AffineTransformOp(aid.affineTransform, AffineTransformOp.TYPE_BILINEAR); - after = transOp.filter(img, after); - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - //image.setRGB(x, y, Color.black); - if (after.getRGB(x, y) == 0) { - // after.setRGB(x, y, -16777216); - after.setRGB(x, y, Color.black.getRGB()); - } - } - } - //System.out.println("affineTranform's yscale = " + aid.affineTransform.getScaleY()); + BufferedImage after = img; + + if (!aid.affineTransform.isIdentity()) { + after = new BufferedImage(width, height, img.getType()); + + ((Graphics2D)img.getGraphics()).setBackground(Color.black); + ((Graphics2D)after.getGraphics()).setBackground(Color.black); + + double yOff = -(height - (aid.affineTransform.getScaleY()*height))/2; + double xOff = -(width - (aid.affineTransform.getScaleX()*width))/2; + aid.affineTransform.translate(xOff, yOff); + AffineTransformOp transOp = + new AffineTransformOp(aid.affineTransform, AffineTransformOp.TYPE_BILINEAR); + after = transOp.filter(img, after); + + /* + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + //image.setRGB(x, y, Color.black); + if (after.getRGB(x, y) == 0) { + // after.setRGB(x, y, -16777216); + after.setRGB(x, y, Color.black.getRGB()); + } + } + + */ + } + applyBulbMask(aid, (Graphics2D)after.getGraphics(), width, height); return after;