VintaSoft Imaging .NET SDK 15.1: Documentation for .NET developer
Vintasoft.Imaging.Drawing.Svg Namespace / SvgDrawingEngine Class
Members Object Syntax Example Hierarchy Requirements SeeAlso
In This Topic
SvgDrawingEngine Class
In This Topic
Provides the drawing engine, which is based on SVG format.
Object Model
EncoderBase Resolution AffineMatrix IRegion DrawingFactory SvgDrawingEngine
Syntax
'Declaration

Public NotInheritable Class SvgDrawingEngine
   Inherits Vintasoft.Imaging.Drawing.DrawingEngine

public sealed class SvgDrawingEngine : Vintasoft.Imaging.Drawing.DrawingEngine

Example

This C#/VB.NET code shows how to create SVG drawing engine and use created drawing engine for drawing of graphic objects (figures and text) on SVG image.


Imports System.Drawing
Imports System.Xml

Imports Vintasoft.Imaging
Imports Vintasoft.Imaging.Drawing
Imports Vintasoft.Imaging.Drawing.Svg

Class SvgDrawingEngineExample
    ''' <summary>
    ''' Creates SVG drawing engine on specified image and performs drawing.
    ''' </summary>
    ''' <param name="width">SVG image width.</param>
    ''' <param name="height">SVG image height.</param>
    ''' <param name="resultImagePath">A path to save the result SVG image.</param>
    Public Shared Sub DrawWithSvgDrawingEngine(width As Integer, height As Integer, resultImagePath As String)
        ' create drawing engine
        Using drawingEngine As New SvgDrawingEngine(width, height)
            ' create drawing area
            Dim drawingArea As New RectangleF(0, 0, width, height)
            ' draw objects
            DrawingExample(drawingEngine, drawingArea)

            ' create XML writer
            Using xmlWriter__1 As XmlWriter = XmlWriter.Create(resultImagePath)
                ' get SVG content
                Dim content As SvgContent = drawingEngine.GetContent()
                ' save SVG image
                content.Save(xmlWriter__1)
            End Using
        End Using
    End Sub

    ''' <summary>
    ''' Draws graphic objects using specified drawing engine.
    ''' </summary>
    ''' <param name="drawingEngine">Drawing engine.</param>
    ''' <param name="drawingArea">Image area to draw objects in.</param>
    Public Shared Sub DrawingExample(drawingEngine As DrawingEngine, drawingArea As RectangleF)
        ' create bounding rectangle for ellipse
        Dim ellipseRect As New RectangleF(drawingArea.X + drawingArea.Width * 0.3F, drawingArea.Y + drawingArea.Height * 0.3F, drawingArea.Width * 0.4F, drawingArea.Height * 0.4F)

        ' create brush and pen to draw ellipse
        Using brush As IDrawingSolidBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Blue)
            Using pen As IDrawingPen = drawingEngine.DrawingFactory.CreatePen(Color.Red, 4F)
                ' fill ellipse
                drawingEngine.FillEllipse(brush, ellipseRect)
                ' stroke ellipse
                drawingEngine.DrawEllipse(pen, ellipseRect)
            End Using
        End Using

        ' create brush and font to draw text
        Using textBrush As IDrawingSolidBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Yellow)
            Using font As IDrawingFont = drawingEngine.DrawingFactory.CreateFont("Arial", 30, True, False)
                ' create properties to layout text
                Dim layoutProperties As New TextLayoutProperties(AnchorType.Center)
                ' draw text
                drawingEngine.DrawText("Text", font, textBrush, ellipseRect, layoutProperties)
            End Using
        End Using
    End Sub
End Class


using System.Drawing;
using System.Xml;

using Vintasoft.Imaging;
using Vintasoft.Imaging.Drawing;
using Vintasoft.Imaging.Drawing.Svg;

namespace CSHARP
{
    class SvgDrawingEngineExample
    {
        /// <summary>
        /// Creates SVG drawing engine on specified image and performs drawing.
        /// </summary>
        /// <param name="width">SVG image width.</param>
        /// <param name="height">SVG image height.</param>
        /// <param name="resultImagePath">A path to save the result SVG image.</param>
        public static void DrawWithSvgDrawingEngine(int width, int height, string resultImagePath)
        {
            // create drawing engine
            using (SvgDrawingEngine drawingEngine = new SvgDrawingEngine(width, height))
            {
                // create drawing area
                RectangleF drawingArea = new RectangleF(0, 0, width, height);
                // draw objects
                DrawingExample(drawingEngine, drawingArea);

                // create XML writer
                using (XmlWriter xmlWriter = XmlWriter.Create(resultImagePath))
                {
                    // get SVG content
                    SvgContent content = drawingEngine.GetContent();
                    // save SVG image
                    content.Save(xmlWriter);
                }
            }
        }

        /// <summary>
        /// Draws graphic objects using specified drawing engine.
        /// </summary>
        /// <param name="drawingEngine">Drawing engine.</param>
        /// <param name="drawingArea">Image area to draw objects in.</param>
        public static void DrawingExample(DrawingEngine drawingEngine, RectangleF drawingArea)
        {
            // create bounding rectangle for ellipse
            RectangleF ellipseRect = new RectangleF(
                drawingArea.X + drawingArea.Width * 0.3f,
                drawingArea.Y + drawingArea.Height * 0.3f,
                drawingArea.Width * 0.4f,
                drawingArea.Height * 0.4f);

            // create brush and pen to draw ellipse
            using (IDrawingSolidBrush brush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Blue))
            {
                using (IDrawingPen pen = drawingEngine.DrawingFactory.CreatePen(Color.Red, 4f))
                {
                    // fill ellipse
                    drawingEngine.FillEllipse(brush, ellipseRect);
                    // stroke ellipse
                    drawingEngine.DrawEllipse(pen, ellipseRect);
                }
            }

            // create brush and font to draw text
            using (IDrawingSolidBrush textBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Yellow))
            {
                using (IDrawingFont font = drawingEngine.DrawingFactory.CreateFont("Arial", 30, true, false))
                {
                    // create properties to layout text
                    TextLayoutProperties layoutProperties = new TextLayoutProperties(AnchorType.Center);
                    // draw text
                    drawingEngine.DrawText("Text", font, textBrush, ellipseRect, layoutProperties);
                }
            }
        }
    }
}

Inheritance Hierarchy

System.Object
   Vintasoft.Imaging.Drawing.DrawingEngine
      Vintasoft.Imaging.Drawing.Svg.SvgDrawingEngine

Requirements

Target Platforms: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

See Also