@@ -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); | |||||
} | |||||
} | } |