VintaSoft Imaging .NET SDK 15.2: Документация для .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

Пример

Вот 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 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

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