public class SvgGraphics2D extends Object
Provides drawing commmands to compose an Svg image.
This example shows how to create an SVG image of the specified size and draw different shapes on it using SvgGraphics2D.
String dir = "c:\\temp\\"; int imageWidth = 600; int imageHeight = 400; int dpi = 96; com.aspose.imaging.fileformats.svg.graphics.SvgGraphics2D graphics = new com.aspose.imaging.fileformats.svg.graphics.SvgGraphics2D(imageWidth, imageHeight, dpi); // Draw a black rectangle along the image borders using a 1-pixel-wide black pen. graphics.drawRectangle(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getBlack(), 1), 0, 0, imageWidth, imageHeight); // Fill a rectangle with the color of white-smoke. graphics.fillRectangle( new com.aspose.imaging.Pen(com.aspose.imaging.Color.getWhiteSmoke(), 1), new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getWhiteSmoke()), 10, 10, 580, 380); // Draw two diagonal lines using a 1-pixel-wide darkgreen pen. graphics.drawLine(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getDarkGreen(), 1), 0, 0, imageWidth, imageHeight); graphics.drawLine(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getDarkGreen(), 1), 0, imageHeight, imageWidth, 0); // Draw an arc within the rectangle {0, 0, 200, 200} using a 2-pixel-wide blue pen. graphics.drawArc( new com.aspose.imaging.Pen(com.aspose.imaging.Color.getBlue(), 2), new com.aspose.imaging.Rectangle(0, 0, 200, 200), 90, 270); // Fill an arc graphics.fillArc(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getLightCoral(), 10), new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getLightSkyBlue()), new com.aspose.imaging.Rectangle(0, 0, 150, 150), 90, 270); // Draw a cubic bezier using a 2-pixel-wide red pen. graphics.drawCubicBezier(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getRed(), 2), new com.aspose.imaging.PointF(0, 0), new com.aspose.imaging.PointF(200, 133), new com.aspose.imaging.PointF(400, 166), new com.aspose.imaging.PointF(600, 400)); // Draw a raster image of the specified size at the specified location. // The image is scaled to fit the desired rectangle. com.aspose.imaging.RasterImage imageToDraw = (com.aspose.imaging.RasterImage) com.aspose.imaging.Image.load(dir + "sample.bmp"); try { graphics.drawImage(imageToDraw, new com.aspose.imaging.Point(400, 200), new com.aspose.imaging.Size(100, 50)); } finally { imageToDraw.dispose(); } // Draw a text string graphics.drawString( new com.aspose.imaging.Font("Arial", 48, com.aspose.imaging.FontStyle.Regular), "Hello World!", new com.aspose.imaging.Point(200, 300), com.aspose.imaging.Color.getDarkRed()); // Create a path to fill com.aspose.imaging.Figure figureToFill = new com.aspose.imaging.Figure(); figureToFill.setClosed(true); com.aspose.imaging.GraphicsPath pathToFill = new com.aspose.imaging.GraphicsPath(); pathToFill.addFigure(figureToFill); figureToFill.addShapes(new com.aspose.imaging.Shape[] { new com.aspose.imaging.shapes.ArcShape(new com.aspose.imaging.RectangleF(400, 0, 200, 100), 45, 300), new com.aspose.imaging.shapes.BezierShape( new com.aspose.imaging.PointF[] { new com.aspose.imaging.PointF(300, 200), new com.aspose.imaging.PointF(400, 200), new com.aspose.imaging.PointF(500, 100), new com.aspose.imaging.PointF(600, 200), }), new com.aspose.imaging.shapes.PolygonShape( new com.aspose.imaging.PointF[] { new com.aspose.imaging.PointF(300, 100), }), new com.aspose.imaging.shapes.RectangleShape( new com.aspose.imaging.RectangleF(0, 100, 200, 200)), }); // Fill the path using a yellow brush and a green pen to draw outline graphics.fillPath( new com.aspose.imaging.Pen(com.aspose.imaging.Color.getGreen(), 2), new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getYellow()), pathToFill); // Create a path to draw com.aspose.imaging.GraphicsPath pathToDraw = new com.aspose.imaging.GraphicsPath(); com.aspose.imaging.Figure figureToDraw = new com.aspose.imaging.Figure(); pathToDraw.addFigure(figureToDraw); figureToDraw.addShapes(new com.aspose.imaging.Shape[] { new com.aspose.imaging.shapes.ArcShape(new com.aspose.imaging.RectangleF(200, 200, 200, 200), 0, 360), }); // Draw the path using a 5-pixel-wide orange pen. graphics.drawPath(new com.aspose.imaging.Pen(com.aspose.imaging.Color.getOrange(), 5), pathToDraw); // Get the final SVG image which includes all drawing commands com.aspose.imaging.fileformats.svg.SvgImage svgImage = graphics.endRecording(); try { svgImage.save(dir + "test.output.svg"); } finally { svgImage.dispose(); }
Constructor and Description |
---|
SvgGraphics2D(int width,
int height,
int dpi)
Initializes a new instance of the
SvgGraphics2D class. |
SvgGraphics2D(SvgImage image)
Initializes a new instance of the
SvgGraphics2D class. |
Modifier and Type | Method and Description |
---|---|
void |
drawArc(Pen pen,
Rectangle rect,
float startAngle,
float arcAngle)
Draws an arc representing a portion of an ellipse specified by a Rectangle structure.
|
void |
drawCubicBezier(Pen pen,
PointF pt1,
PointF pt2,
PointF pt3,
PointF pt4)
Draws the cubic bezier.
|
void |
drawImage(RasterImage image,
Point origin)
Draws the specified image at the specified location.
|
void |
drawImage(RasterImage image,
Point origin,
Size size)
Draws the specified image of the specified size at the specified location.
|
void |
drawImage(Rectangle srcRect,
Rectangle destRect,
RasterImage image)
Draws the specified portion of the specified image at the specified location and with the specified size.
|
void |
drawLine(Pen pen,
int x1,
int y1,
int x2,
int y2)
Draws the line.
|
void |
drawPath(Pen pen,
GraphicsPath path)
Draws the path.
|
void |
drawRectangle(Pen pen,
int x,
int y,
int width,
int height)
Draws the rectangle.
|
void |
drawString(Font font,
String text,
Point origin,
Color textColor)
Draws the text string.
|
SvgImage |
endRecording()
Gets the final Svg image which includes all drawing commands performed via
SvgGraphics2D object. |
void |
fillArc(Pen pen,
Brush brush,
Rectangle rect,
float startAngle,
float arcAngle)
Fills an arc representing a portion of an ellipse specified by a Rectangle structure.
|
void |
fillPath(Pen pen,
Brush brush,
GraphicsPath path)
Fills the path.
|
void |
fillRectangle(Pen pen,
Brush brush,
int x,
int y,
int width,
int height)
Fills the rectangle.
|
public SvgGraphics2D(int width, int height, int dpi)
Initializes a new instance of the SvgGraphics2D
class.
width
- The width of the output Svg image.height
- The width of the output Svg image.dpi
- The device resolution, e.g. 96 dots per inch.This example shows how to create an SVG image of the specified size and rasterize it to PNG.
String dir = "c:\\temp\\"; int imageWidth = 100; int imageHeight = 100; int dpi = 96; // Create an SVG image of 100x100 px. com.aspose.imaging.fileformats.svg.graphics.SvgGraphics2D graphics = new com.aspose.imaging.fileformats.svg.graphics.SvgGraphics2D(imageWidth, imageHeight, dpi); com.aspose.imaging.Pen pen = new com.aspose.imaging.Pen(com.aspose.imaging.Color.getYellow(), 10); com.aspose.imaging.brushes.SolidBrush brush = new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getRed()); // Fill the entire image in red. // Draw a yellow rectangle of 10px wide along the image boundaries. graphics.fillRectangle(pen, brush, 0, 0, imageWidth, imageHeight); // Get the final Svg image which includes all drawing commands com.aspose.imaging.fileformats.svg.SvgImage svgImage = graphics.endRecording(); try { svgImage.save(dir + "test.output.svg"); } finally { svgImage.dispose(); }
public SvgGraphics2D(SvgImage image)
Initializes a new instance of the SvgGraphics2D
class.
image
- The image to perform drawing operations on.public final void drawImage(RasterImage image, Point origin)
Draws the specified image at the specified location.
image
- The drawn image.origin
- The location of the drawn image.public final void drawImage(RasterImage image, Point origin, Size size)
Draws the specified image of the specified size at the specified location.
image
- The drawn image.origin
- The location of the drawn image.size
- The desired size of the drawn image.public final void drawImage(Rectangle srcRect, Rectangle destRect, RasterImage image)
Draws the specified portion of the specified image at the specified location and with the specified size.
srcRect
- The portion of the image object to draw.destRect
- The location and size of the drawn image. The image is scaled to fit the rectangle.image
- The image to draw.public final void drawArc(Pen pen, Rectangle rect, float startAngle, float arcAngle)
Draws an arc representing a portion of an ellipse specified by a Rectangle structure.
pen
- The pen to draw the outline of the figure.rect
- The boundaries of the ellipse.startAngle
- The angle in degrees measured clockwise from the x-axis to the starting point of the arc.arcAngle
- The angle in degrees measured clockwise from the startAngle parameter to ending point of the arc.public final void fillArc(Pen pen, Brush brush, Rectangle rect, float startAngle, float arcAngle)
Fills an arc representing a portion of an ellipse specified by a Rectangle structure.
pen
- The pen to draw the outline of the figure.brush
- The brush to fill the interior of the figure.rect
- The boundaries of the ellipse.startAngle
- The angle in degrees measured clockwise from the x-axis to the starting point of the arc.arcAngle
- The angle in degrees measured clockwise from the startAngle parameter to ending point of the arc.public final void drawCubicBezier(Pen pen, PointF pt1, PointF pt2, PointF pt3, PointF pt4)
Draws the cubic bezier.
pen
- The pen that determines the color, width, and style of the figure.pt1
- The starting point of the curve.pt2
- The first control point for the curve.pt3
- The second control point for the curve.pt4
- The ending point of the curve.public final void drawString(Font font, String text, Point origin, Color textColor)
Draws the text string.
font
- The font used to render text.text
- The unicode text string.origin
- The top-left corner of the text run.textColor
- The text color.public final void drawLine(Pen pen, int x1, int y1, int x2, int y2)
Draws the line.
pen
- The pen that determines the color, width, and style of the figure.x1
- The x-coordinate of the first point.y1
- The y-coordinate of the first point.x2
- The x-coordinate of the second point.y2
- The y-coordinate of the second point.public final void drawPath(Pen pen, GraphicsPath path)
Draws the path.
pen
- The pen to draw the outline of the figure.path
- The path to draw.public final void fillPath(Pen pen, Brush brush, GraphicsPath path)
Fills the path.
pen
- The pen to draw the outline of the figure.brush
- The brush to fill the interior of the figure.path
- The path to draw.public final void drawRectangle(Pen pen, int x, int y, int width, int height)
Draws the rectangle.
pen
- The pen to draw the outline of the figure.x
- The x-coordinate of the upper-left corner of the rectangle to draw.y
- The y-coordinate of the upper-left corner of the rectangle to draw.width
- The width of the rectangle to draw.height
- The height of the rectangle to draw.public final void fillRectangle(Pen pen, Brush brush, int x, int y, int width, int height)
Fills the rectangle.
pen
- The pen to draw the outline of the figure.brush
- The brush to fill the interior of the figure.x
- The x-coordinate of the upper-left corner of the rectangle to draw.y
- The y-coordinate of the upper-left corner of the rectangle to draw.width
- The width of the rectangle to draw.height
- The height of the rectangle to draw.public final SvgImage endRecording()
Gets the final Svg image which includes all drawing commands performed via SvgGraphics2D
object.