Provides the 2D drawing engine, which is based on GDI+ drawing surface.
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);
}
}
}
}
}
Target Platforms: .NET9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5