From 2a5857c384ef5a9e02b4264be44bf67f3a584d57 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Fri, 16 Feb 2018 21:00:04 +0100 Subject: [PATCH] port image type bug fixes from Java8 refactoring in master --- .../apache/tools/ant/types/optional/image/Arc.java | 2 +- .../tools/ant/types/optional/image/Ellipse.java | 2 +- .../tools/ant/types/optional/image/Rectangle.java | 2 +- .../apache/tools/ant/types/optional/image/Text.java | 13 ++++++++++++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/org/apache/tools/ant/types/optional/image/Arc.java b/src/main/org/apache/tools/ant/types/optional/image/Arc.java index 3d8b29b2d..ce29bfd37 100644 --- a/src/main/org/apache/tools/ant/types/optional/image/Arc.java +++ b/src/main/org/apache/tools/ant/types/optional/image/Arc.java @@ -112,10 +112,10 @@ public class Arc extends BasicShape implements DrawOperation { PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); } else if (instr instanceof TransformOperation) { - graphics = (Graphics2D) bi.getGraphics(); PlanarImage image = ((TransformOperation) instr) .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); bi = image.getAsBufferedImage(); + graphics = (Graphics2D) bi.getGraphics(); } } return PlanarImage.wrapRenderedImage(bi); diff --git a/src/main/org/apache/tools/ant/types/optional/image/Ellipse.java b/src/main/org/apache/tools/ant/types/optional/image/Ellipse.java index 9fa1802d4..635d809bd 100644 --- a/src/main/org/apache/tools/ant/types/optional/image/Ellipse.java +++ b/src/main/org/apache/tools/ant/types/optional/image/Ellipse.java @@ -76,10 +76,10 @@ public class Ellipse extends BasicShape implements DrawOperation { PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); } else if (instr instanceof TransformOperation) { - graphics = (Graphics2D) bi.getGraphics(); PlanarImage image = ((TransformOperation) instr) .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); bi = image.getAsBufferedImage(); + graphics = (Graphics2D) bi.getGraphics(); } } return PlanarImage.wrapRenderedImage(bi); diff --git a/src/main/org/apache/tools/ant/types/optional/image/Rectangle.java b/src/main/org/apache/tools/ant/types/optional/image/Rectangle.java index e2d5bb1b2..836b6ca00 100644 --- a/src/main/org/apache/tools/ant/types/optional/image/Rectangle.java +++ b/src/main/org/apache/tools/ant/types/optional/image/Rectangle.java @@ -107,11 +107,11 @@ public class Rectangle extends BasicShape implements DrawOperation { PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); } else if (instr instanceof TransformOperation) { - graphics = (Graphics2D) bi.getGraphics(); PlanarImage image = ((TransformOperation) instr) .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); bi = image.getAsBufferedImage(); + graphics = (Graphics2D) bi.getGraphics(); } } return PlanarImage.wrapRenderedImage(bi); diff --git a/src/main/org/apache/tools/ant/types/optional/image/Text.java b/src/main/org/apache/tools/ant/types/optional/image/Text.java index 5ba010a2d..ac18ed4ca 100644 --- a/src/main/org/apache/tools/ant/types/optional/image/Text.java +++ b/src/main/org/apache/tools/ant/types/optional/image/Text.java @@ -103,7 +103,7 @@ public class Text extends ImageOperation implements DrawOperation { RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.setRenderingHint( RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); - Font f = new Font(font, Font.PLAIN, point); + Font f = createFont(); FontMetrics fmetrics = graphics.getFontMetrics(f); height = fmetrics.getMaxAscent() + fmetrics.getMaxDescent(); width = fmetrics.stringWidth(strText); @@ -123,4 +123,15 @@ public class Text extends ImageOperation implements DrawOperation { PlanarImage image = PlanarImage.wrapRenderedImage(bi); return image; } + + private Font createFont() { + int style = Font.PLAIN; + if (bold) { + style |= Font.BOLD; + } + if (italic) { + style |= Font.ITALIC; + } + return new Font(font, style, point); + } }