VintaSoft Imaging .NET SDK 15.2: Documentation for .NET developer
Vintasoft.Imaging.Drawing.Gdi Namespace / GdiGraphics Class
Members Object Syntax Example Hierarchy Requirements SeeAlso
In This Topic
GdiGraphics Class
In This Topic
Provides the 2D drawing engine, which is based on GDI+ drawing surface.
Object Model
Resolution DrawingFactory AffineMatrix IRegion VintasoftImage PixelManipulator GdiGraphics
Syntax
'Declaration

Public NotInheritable Class GdiGraphics
   Inherits Vintasoft.Imaging.Drawing.RasterDrawingEngine

public sealed class GdiGraphics : Vintasoft.Imaging.Drawing.RasterDrawingEngine

Example

This C#/VB.NET code shows how to create and use GDI drawing engine to draw different graphic objects like figures and text.


Imports System.Drawing

Imports Vintasoft.Imaging
Imports Vintasoft.Imaging.Drawing
Imports Vintasoft.Imaging.Drawing.Gdi

Class GdiGraphicsExample
    ''' <summary>
    ''' Creates GDI Graphics drawing engine on specified image and performs drawing.
    ''' </summary>
    Public Shared Sub DrawWithGdiGraphics(image As VintasoftImage)
        ' create drawing engine for image
        Using drawingEngine As New GdiGraphics(image)
            ' create drawing area
            Dim drawingArea As New RectangleF(0, 0, image.Width, image.Height)
            ' draw objects in area
            DrawingExample(drawingEngine, drawingArea)
        End Using
    End Sub

    ''' <summary>
    ''' Draws graphic objects with 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 Vintasoft.Imaging;
using Vintasoft.Imaging.Drawing;
using Vintasoft.Imaging.Drawing.Gdi;

namespace CSHARP
{
    class GdiGraphicsExample
    {
        /// <summary>
        /// Creates GDI Graphics drawing engine on specified image and performs drawing.
        /// </summary>
        public static void DrawWithGdiGraphics(VintasoftImage image)
        {
            // create drawing engine for image
            using (GdiGraphics drawingEngine = new GdiGraphics(image))
            {
                // create drawing area
                RectangleF drawingArea = new RectangleF(0, 0, image.Width, image.Height);
                // draw objects in area
                DrawingExample(drawingEngine, drawingArea);
            }
        }

        /// <summary>
        /// Draws graphic objects with 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.RasterDrawingEngine
         Vintasoft.Imaging.Drawing.Gdi.GdiGraphics

Requirements

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

See Also