←Select platform

PaintRegionBuffer(RasterImage,Graphics,LeadRect,LeadRect,LeadRect,LeadRect,IntPtr,int,int,RasterPaintProperties) Method

Summary
Paints image region data from an unmanaged memory buffer into a System.Drawing.Graphics object.
Syntax
C#
C++/CLI
Python

Parameters

image
The source image.

graphics
The destination System.Drawing.Graphics object where the image data will be displayed.

srcRect
A Leadtools.LeadRect object that specifies the part of the image to use as the display source.

The coordinates in the  srcRect rectangle are relative to the image. You can pass Rectangle.Empty to use the default, which matches the image.

srcClipRect
A Leadtools.LeadRect object specifies the portion of the display source to paint. Generally, this is used for updating the display when part of the source image has changed.

The coordinates in the  srcClipRect rectangle are relative to the image. You can pass Rectangle.Empty to use the default, which matches the image

destRect
A Leadtools.LeadRect object that determines how the source rectangle is scaled and how the image is positioned in the destination  graphics object.

The coordinates in the  destRect object are relative to the  graphics object. There is no default for this parameter. You must specify the Leadtools.LeadRect object.

destClipRect
A Leadtools.LeadRect object that specifies the portion of the display rectangle to paint. Generally, this is used for updating changes in the display surface, such as when a user moves another window, uncovering a part of the image that had been covered up.

The coordinates in the  destClipRect are relative to the System.Drawing.Graphics object. You can pass Rectangle.Empty to use the default, which matches the System.Drawing.Graphics object. In most cases, however, you should use the rectangle returned by the .NET PaintEventArgs.ClipRectangle or Windows WM_PAINT message.

buffer
Pointer to the unmanaged memory buffer that contains the image data to paint

row
The first row to paint. The painted portion of any row may be limited by the rectangle parameters.

count
The number of rows to paint. The painted portion of any row may be limited by the rectangle parameters.

If the image data in  buffer is compressed 1-bit data, you can specify the number of lines by using a negative value (-lines), as explained in Speeding Up 1-Bit Documents.

properties
Options for the display.

Remarks

This method works like PaintBuffer(RasterImage,Graphics,LeadRect,LeadRect,LeadRect,LeadRect,Byte[],Int32,Int32,Int32,RasterPaintProperties), except that only the image region is painted.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
using Leadtools.ImageProcessing; 
 
 
public void PaintRegionBufferExample() 
{ 
   PaintRegionBufferForm f = new PaintRegionBufferForm(); 
   f.ShowDialog(); 
} 
 
class PaintRegionBufferForm : Form 
{ 
   private RasterImage image; 
 
   public PaintRegionBufferForm() 
   { 
      // Load the image 
      RasterCodecs codecs = new RasterCodecs(); 
 
      string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
      image = codecs.Load(srcFileName); 
 
      // add a region to the image 
      image.AddEllipseToRegion( 
         RasterRegionXForm.Default, 
         new LeadRect(image.Width / 4, image.Height / 4, image.Width / 2, image.Height / 2), 
         RasterRegionCombineMode.Set); 
 
      Text = "PaintRegionBuffer Example"; 
   } 
 
   protected override void Dispose(bool disposing) 
   { 
      // Clean up 
      if (disposing) 
      { 
         image.Dispose(); 
      } 
 
      base.Dispose(disposing); 
   } 
 
   protected override void OnPaint(PaintEventArgs e) 
   { 
      // Draw the image fit and center on this form 
      LeadRect destRect = LeadRect.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom); 
      destRect = RasterImage.CalculatePaintModeRectangle( 
         image.ImageWidth, 
         image.ImageHeight, 
         destRect, 
         RasterPaintSizeMode.Fit, 
         RasterPaintAlignMode.Center, 
         RasterPaintAlignMode.Center); 
 
      byte[] buffer = new byte[image.BytesPerLine]; 
 
      image.Access(); 
      for (int row = 0; row < image.Height; row++) 
      { 
         image.GetRow(row, buffer, 0, image.BytesPerLine); 
         RasterImagePainter.PaintRegionBuffer(image, e.Graphics, LeadRect.Empty, LeadRect.Empty, destRect, LeadRect.Empty, buffer, 0, row, 1, RasterPaintProperties.Default); 
         Thread.Sleep(20); 
      } 
      image.Release(); 
 
      base.OnPaint(e); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Drawing Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.