| @@ -112,10 +112,10 @@ public class Arc extends BasicShape implements DrawOperation { | |||||
| PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); | PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); | ||||
| graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); | graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); | ||||
| } else if (instr instanceof TransformOperation) { | } else if (instr instanceof TransformOperation) { | ||||
| graphics = (Graphics2D) bi.getGraphics(); | |||||
| PlanarImage image = ((TransformOperation) instr) | PlanarImage image = ((TransformOperation) instr) | ||||
| .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); | .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); | ||||
| bi = image.getAsBufferedImage(); | bi = image.getAsBufferedImage(); | ||||
| graphics = (Graphics2D) bi.getGraphics(); | |||||
| } | } | ||||
| } | } | ||||
| return PlanarImage.wrapRenderedImage(bi); | return PlanarImage.wrapRenderedImage(bi); | ||||
| @@ -76,10 +76,10 @@ public class Ellipse extends BasicShape implements DrawOperation { | |||||
| PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); | PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); | ||||
| graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); | graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); | ||||
| } else if (instr instanceof TransformOperation) { | } else if (instr instanceof TransformOperation) { | ||||
| graphics = (Graphics2D) bi.getGraphics(); | |||||
| PlanarImage image = ((TransformOperation) instr) | PlanarImage image = ((TransformOperation) instr) | ||||
| .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); | .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); | ||||
| bi = image.getAsBufferedImage(); | bi = image.getAsBufferedImage(); | ||||
| graphics = (Graphics2D) bi.getGraphics(); | |||||
| } | } | ||||
| } | } | ||||
| return PlanarImage.wrapRenderedImage(bi); | return PlanarImage.wrapRenderedImage(bi); | ||||
| @@ -107,11 +107,11 @@ public class Rectangle extends BasicShape implements DrawOperation { | |||||
| PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); | PlanarImage img = ((DrawOperation) instr).executeDrawOperation(); | ||||
| graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); | graphics.drawImage(img.getAsBufferedImage(), null, 0, 0); | ||||
| } else if (instr instanceof TransformOperation) { | } else if (instr instanceof TransformOperation) { | ||||
| graphics = (Graphics2D) bi.getGraphics(); | |||||
| PlanarImage image | PlanarImage image | ||||
| = ((TransformOperation) instr) | = ((TransformOperation) instr) | ||||
| .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); | .executeTransformOperation(PlanarImage.wrapRenderedImage(bi)); | ||||
| bi = image.getAsBufferedImage(); | bi = image.getAsBufferedImage(); | ||||
| graphics = (Graphics2D) bi.getGraphics(); | |||||
| } | } | ||||
| } | } | ||||
| return PlanarImage.wrapRenderedImage(bi); | return PlanarImage.wrapRenderedImage(bi); | ||||
| @@ -103,7 +103,7 @@ public class Text extends ImageOperation implements DrawOperation { | |||||
| RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); | RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); | ||||
| graphics.setRenderingHint( | graphics.setRenderingHint( | ||||
| RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); | RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); | ||||
| Font f = new Font(font, Font.PLAIN, point); | |||||
| Font f = createFont(); | |||||
| FontMetrics fmetrics = graphics.getFontMetrics(f); | FontMetrics fmetrics = graphics.getFontMetrics(f); | ||||
| height = fmetrics.getMaxAscent() + fmetrics.getMaxDescent(); | height = fmetrics.getMaxAscent() + fmetrics.getMaxDescent(); | ||||
| width = fmetrics.stringWidth(strText); | width = fmetrics.stringWidth(strText); | ||||
| @@ -123,4 +123,15 @@ public class Text extends ImageOperation implements DrawOperation { | |||||
| PlanarImage image = PlanarImage.wrapRenderedImage(bi); | PlanarImage image = PlanarImage.wrapRenderedImage(bi); | ||||
| return image; | 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); | |||||
| } | |||||
| } | } | ||||