Controls the speed, quality, and style used when painting a Leadtools.RasterImage object using the Windows GDI or GDI+ engines.
public struct RasterPaintProperties : System.ValueType
Public Structure RasterPaintProperties
Inherits System.ValueType
public value class RasterPaintProperties : public System.ValueType
The various RasterImagePainter.Paint method overloads require an instance of RasterPaintProperties to be passed. The members of the RasterPaintProperties controls the speed, quality, and style used when painting.
The following example creates a Windows form with various controls to show different RasterPaintProperties options.
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Drawing
<TestMethod()> _
Public Sub RasterPaintPropertiesExample()
' Create the form
Dim form As New PaintPropertiesForm()
form.ShowDialog()
End Sub
Class PaintPropertiesForm
Inherits Form
Private index As Integer = 0
Private rasterImage As RasterImage
Private paintProperties As RasterPaintProperties
Public Sub New()
Text = "GDI paint engine - normal - Double click to show next RasterPaintProperties options"
SetStyle(ControlStyles.ResizeRedraw, True)
SetStyle(ControlStyles.AllPaintingInWmPaint, True)
SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
SetStyle(ControlStyles.UserPaint, True)
' Load an image
Dim fileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Ocr1.tif"
Using codecs As New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
rasterImage = codecs.Load(fileName)
End Using
paintProperties = RasterPaintProperties.Default
' Start with GDI paint engine and normal paint scaling
paintProperties.PaintEngine = RasterPaintEngine.Gdi
paintProperties.PaintDisplayMode = RasterPaintDisplayModeFlags.None
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not IsNothing(rasterImage) Then
rasterImage.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Protected Overrides Sub OnDoubleClick(ByVal e As EventArgs)
Select index
Case 0
Text = "GDI paint engine - SourceAnd ROP - Double click to show next RasterPaintProperties options"
paintProperties.RasterOperation = RasterPaintProperties.SourceAnd
Case 1
Text = "GDI paint engine - Scale to gray - Double click to show next RasterPaintProperties options"
paintProperties.RasterOperation = RasterPaintProperties.SourceCopy
paintProperties.PaintDisplayMode = RasterPaintDisplayModeFlags.ScaleToGray
Case 2
Text = "GDI+ paint engine - Double click to set the opacity"
paintProperties.PaintEngine = RasterPaintEngine.GdiPlus
Case 3
Text = "GDI+ paint engine - Opacity set to 50% - Done"
paintProperties.Opacity = 128
End Select
index = index + 1
Invalidate()
MyBase.OnDoubleClick(e)
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
' Paint the image
Dim destRect As LeadRect = LeadRect.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom)
destRect = rasterImage.CalculatePaintModeRectangle( _
rasterImage.ImageWidth, _
rasterImage.ImageHeight, _
destRect, _
RasterPaintSizeMode.Fit, _
RasterPaintAlignMode.Center, _
RasterPaintAlignMode.Center)
RasterImagePainter.Paint(rasterImage, e.Graphics, destRect, paintProperties)
MyBase.OnPaint(e)
End Sub
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
public void RasterPaintPropertiesExample()
{
// Create the form
PaintPropertiesForm form = new PaintPropertiesForm();
form.ShowDialog();
}
class PaintPropertiesForm : Form
{
private int index = 0;
private RasterImage rasterImage;
private RasterPaintProperties paintProperties;
public PaintPropertiesForm()
{
Text = "GDI paint engine - normal - Double click to show next RasterPaintProperties options";
SetStyle(ControlStyles.ResizeRedraw, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.UserPaint, true);
// Load an image
string fileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");
using(RasterCodecs codecs = new RasterCodecs())
{
codecs.ThrowExceptionsOnInvalidImages = true;
rasterImage = codecs.Load(fileName);
}
paintProperties = RasterPaintProperties.Default;
// Start with GDI paint engine and normal paint scaling
paintProperties.PaintEngine = RasterPaintEngine.Gdi;
paintProperties.PaintDisplayMode = RasterPaintDisplayModeFlags.None;
}
protected override void Dispose(bool disposing)
{
if(disposing)
{
if(rasterImage != null)
rasterImage.Dispose();
}
base.Dispose(disposing);
}
protected override void OnDoubleClick(EventArgs e)
{
switch(index)
{
case 0:
Text = "GDI paint engine - SourceAnd ROP - Double click to show next RasterPaintProperties options";
paintProperties.RasterOperation = RasterPaintProperties.SourceAnd;
break;
case 1:
Text = "GDI paint engine - Scale to gray - Double click to show next RasterPaintProperties options";
paintProperties.RasterOperation = RasterPaintProperties.SourceCopy;
paintProperties.PaintDisplayMode = RasterPaintDisplayModeFlags.ScaleToGray;
break;
case 2:
Text = "GDI+ paint engine - Double click to set the opacity";
paintProperties.PaintEngine = RasterPaintEngine.GdiPlus;
break;
case 3:
Text = "GDI+ paint engine - Opacity set to 50% - Done";
paintProperties.Opacity = 128;
break;
default:
break;
}
index++;
Invalidate();
base.OnDoubleClick(e);
}
protected override void OnPaint(PaintEventArgs e)
{
// Paint the image
LeadRect destRect = LeadRect.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom);
destRect = RasterImage.CalculatePaintModeRectangle(
rasterImage.ImageWidth,
rasterImage.ImageHeight,
destRect,
RasterPaintSizeMode.Fit,
RasterPaintAlignMode.Center,
RasterPaintAlignMode.Center);
RasterImagePainter.Paint(rasterImage, e.Graphics, destRect, paintProperties);
base.OnPaint(e);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Products |
Support |
Feedback: RasterPaintProperties Structure - Leadtools.Drawing |
Introduction |
Help Version 19.0.2017.3.21
|
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.