VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging.Drawing.Svg Namespace / SvgDrawingEngine Class
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
В этом разделе
    Класс SvgDrawingEngine
    В этом разделе
    Предоставляет механизм рисования, основанный на формате SVG.
    Объектная модель
    EncoderBase Resolution AffineMatrix IRegion DrawingFactory SvgDrawingEngine
    Синтаксис
    'Declaration
    
    Public NotInheritable Class SvgDrawingEngine
       Inherits Vintasoft.Imaging.Drawing.DrawingEngine
    
    
    public sealed class SvgDrawingEngine : Vintasoft.Imaging.Drawing.DrawingEngine
    
    
    public __gc __sealed class SvgDrawingEngine : public Vintasoft.Imaging.Drawing.DrawingEngine*
    
    
    public ref class SvgDrawingEngine sealed : public Vintasoft.Imaging.Drawing.DrawingEngine^
    
    
    Пример

    Вот C#/VB.NET код, который демонстрирует, как создать механизм рисования SVG и использовать созданный механизм рисования для рисования графических объектов (рисунков и текста) на изображении SVG.

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

    Иерархия наследования

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

    Требования

    Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    Смотрите также