Packages

 

com.aspose.imaging.fileformats.svg.graphics

Class SvgGraphics2D



  • public class SvgGraphics2D
    extends Object

    Provides drawing commmands to compose an Svg image.

    Code example:

    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 Detail

      • SvgGraphics2D

        public SvgGraphics2D(int width,
                             int height,
                             int dpi)

        Initializes a new instance of the SvgGraphics2D class.

        Parameters:
        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.
        Code example:

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

      • SvgGraphics2D

        public SvgGraphics2D(SvgImage image)

        Initializes a new instance of the SvgGraphics2D class.

        Parameters:
        image - The image to perform drawing operations on.
    • Method Detail

      • drawImage

        public final void drawImage(RasterImage image,
                                    Point origin)

        Draws the specified image at the specified location.

        Parameters:
        image - The drawn image.
        origin - The location of the drawn image.
      • drawImage

        public final void drawImage(RasterImage image,
                                    Point origin,
                                    Size size)

        Draws the specified image of the specified size at the specified location.

        Parameters:
        image - The drawn image.
        origin - The location of the drawn image.
        size - The desired size of the drawn image.
      • drawImage

        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.

        Parameters:
        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.
      • drawArc

        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.

        Parameters:
        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.
      • fillArc

        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.

        Parameters:
        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.
      • drawCubicBezier

        public final void drawCubicBezier(Pen pen,
                                          PointF pt1,
                                          PointF pt2,
                                          PointF pt3,
                                          PointF pt4)

        Draws the cubic bezier.

        Parameters:
        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.
      • drawString

        public final void drawString(Font font,
                                     String text,
                                     Point origin,
                                     Color textColor)

        Draws the text string.

        Parameters:
        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.
      • drawLine

        public final void drawLine(Pen pen,
                                   int x1,
                                   int y1,
                                   int x2,
                                   int y2)

        Draws the line.

        Parameters:
        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.
      • drawPath

        public final void drawPath(Pen pen,
                                   GraphicsPath path)

        Draws the path.

        Parameters:
        pen - The pen to draw the outline of the figure.
        path - The path to draw.
      • fillPath

        public final void fillPath(Pen pen,
                                   Brush brush,
                                   GraphicsPath path)

        Fills the path.

        Parameters:
        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.
      • drawRectangle

        public final void drawRectangle(Pen pen,
                                        int x,
                                        int y,
                                        int width,
                                        int height)

        Draws the rectangle.

        Parameters:
        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.
      • fillRectangle

        public final void fillRectangle(Pen pen,
                                        Brush brush,
                                        int x,
                                        int y,
                                        int width,
                                        int height)

        Fills the rectangle.

        Parameters:
        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.
      • endRecording

        public final SvgImage endRecording()

        Gets the final Svg image which includes all drawing commands performed via SvgGraphics2D object.

        Returns:
        The final Svg image.