Displays an outline of the image region in the given System.Drawing.Graphics object.
public static void FrameRegion(RasterImage image,Graphics graphics,RasterRegionXForm xform,int frameIndex)
Public Overloads Shared Sub FrameRegion( _ByVal image As Leadtools.RasterImage, _ByVal graphics As Graphics, _ByVal xform As Leadtools.RasterRegionXForm, _ByVal frameIndex As Integer _)
public:static void FrameRegion(Leadtools.RasterImage^ image,Graphics^ graphics,Leadtools.RasterRegionXForm^ xform,int frameIndex)
image
The source image.
graphics
System.Drawing.Graphics object where the image is displayed and where the frame is to appear.
xform
Leadtools.RasterRegionXForm object that LEADTOOLS uses to translate between display coordinates and image coordinates.
frameIndex
Zero-index of the frame to display. Possible values are from 0 to MaxRegionFrameIndex. You can animate the region frame by cycling between these values.
If the region includes non-contiguous shapes, each shape is outlined. The outline, itself, is inside the region.
Before calling this method, create a Leadtools.RasterRegionXForm object and set its values, which LEADTOOLS uses to translate between device context coordinates and image coordinates.
This method is designed to produce an animated frame, which you can implement by calling the method with a timer event that cycles through the possible frame types.
For more information refer to RasterImage and GDI/GDI+.
For more information, refer to Creating a Region and Working with the Existing Region.
using Leadtools;using Leadtools.Codecs;using Leadtools.Drawing;using Leadtools.ImageProcessing;public void FrameRegionExample(){FrameRegionForm f = new FrameRegionForm();f.ShowDialog();}class FrameRegionForm : Form{private int frameIndex;private RasterImage image;private System.Windows.Forms.Timer timer;private bool fillRegion;public FrameRegionForm(){// Load the imageusing (RasterCodecs codecs = new RasterCodecs()){string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");image = codecs.Load(srcFileName);}// Add a region to the imageLeadRect rc = new LeadRect(image.Width / 3, image.Height / 3, image.Width / 3, image.Height / 3);RasterRegionXForm xform = new RasterRegionXForm();xform.ViewPerspective = RasterViewPerspective.TopLeft;image.AddEllipseToRegion(xform, rc, RasterRegionCombineMode.Set);// initialize the frame indexframeIndex = 0;fillRegion = true;Text = "Double click to enable/disable filling the region";// Create the timertimer = new System.Windows.Forms.Timer();timer.Interval = 100;timer.Tick += new EventHandler(timer_Tick);timer.Start();}protected override void Dispose(bool disposing){// Clean upif (disposing){if (timer != null){timer.Dispose();}if (image != null){image.Dispose();}}base.Dispose(disposing);}protected override void OnDoubleClick(EventArgs e){fillRegion = !fillRegion;Invalidate();base.OnDoubleClick(e);}private RasterRegionXForm GetXForm(LeadRect destRect){// Calculate xform when the image is painted into 'destRect'RasterRegionXForm xform = new RasterRegionXForm();xform.ViewPerspective = RasterViewPerspective.TopLeft;xform.XOffset = destRect.Left;xform.YOffset = destRect.Top;xform.XScalarDenominator = image.Width;xform.XScalarNumerator = destRect.Width;xform.YScalarDenominator = image.Height;xform.YScalarNumerator = destRect.Height;return xform;}protected override void OnPaint(PaintEventArgs e){// Draw the image fit and center on this formLeadRect 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);LeadRect clipRect = LeadRect.FromLTRB(e.ClipRectangle.Left, e.ClipRectangle.Top, e.ClipRectangle.Right, e.ClipRectangle.Bottom);RasterImagePainter.Paint(image, e.Graphics, LeadRect.Empty, LeadRect.Empty, destRect, clipRect, RasterPaintProperties.Default);if (fillRegion){RasterRegionXForm xform = GetXForm(destRect);RasterImagePainter.FillRegion(image, e.Graphics, xform, new RasterColor(255, 0, 255));}base.OnPaint(e);}private void timer_Tick(object sender, EventArgs e){// Frame the image regionLeadRect 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);RasterRegionXForm xform = GetXForm(destRect);using (Graphics g = CreateGraphics()){RasterImagePainter.FrameRegion(image, g, xform, frameIndex);}// advance to next frameframeIndex++;if (frameIndex > RasterImagePainter.MaxRegionFrameIndex){frameIndex = 0;}}}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.DrawingImports Leadtools.ImageProcessingPublic Sub FrameRegionExample()Dim f As New FrameRegionForm()f.ShowDialog()End SubClass FrameRegionFormInherits FormPrivate frameIndex As IntegerPrivate image As RasterImagePrivate timer As System.Windows.Forms.TimerPrivate fillRegion As BooleanPublic Sub New()' Load the imageUsing codecs As New RasterCodecs()Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")image = codecs.Load(srcFileName)End Using' Add a region to the imageDim rc As New LeadRect(image.Width \ 3, image.Height \ 3, image.Width \ 3, image.Height \ 3)Dim xform As New RasterRegionXForm()xform.ViewPerspective = RasterViewPerspective.TopLeftimage.AddEllipseToRegion(xform, rc, RasterRegionCombineMode.Set)' initialize the frame indexframeIndex = 0fillRegion = TrueText = "Double click to enable/disable filling the region"' Create the timertimer = New System.Windows.Forms.Timer()timer.Interval = 100AddHandler timer.Tick, AddressOf timer_Ticktimer.Start()End SubProtected Overrides Sub Dispose(ByVal disposing As Boolean)' Clean upIf disposing ThenIf Not IsNothing(timer) Thentimer.Dispose()End IfIf Not IsNothing(image) Thenimage.Dispose()End IfEnd IfMyBase.Dispose(disposing)End SubProtected Overrides Sub OnDoubleClick(ByVal e As EventArgs)fillRegion = Not fillRegionInvalidate()MyBase.OnDoubleClick(e)End SubPrivate Function GetXForm(ByVal destRect As LeadRect) As RasterRegionXForm' Calculate xform when the image is painted into 'destRect'Dim xform As New RasterRegionXForm()xform.ViewPerspective = RasterViewPerspective.TopLeftxform.XOffset = destRect.Leftxform.YOffset = destRect.Topxform.XScalarDenominator = image.Widthxform.XScalarNumerator = destRect.Widthxform.YScalarDenominator = image.Heightxform.YScalarNumerator = destRect.HeightReturn xformEnd FunctionProtected Overrides Sub OnPaint(ByVal e As PaintEventArgs)' Draw the image fit and center on this formDim destRect As LeadRect = LeadRect.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom)destRect = RasterImage.CalculatePaintModeRectangle(image.ImageWidth,image.ImageHeight,destRect,RasterPaintSizeMode.Fit,RasterPaintAlignMode.Center,RasterPaintAlignMode.Center)Dim clipRect As LeadRect = LeadRect.FromLTRB(e.ClipRectangle.Left, e.ClipRectangle.Top, e.ClipRectangle.Right, e.ClipRectangle.Bottom)RasterImagePainter.Paint(image, e.Graphics, LeadRect.Empty, LeadRect.Empty, destRect, clipRect, RasterPaintProperties.Default)If fillRegion ThenDim xform As RasterRegionXForm = GetXForm(destRect)RasterImagePainter.FillRegion(image, e.Graphics, xform, New RasterColor(255, 0, 255))End IfMyBase.OnPaint(e)End SubPrivate Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)' Frame the image regionDim destRect As LeadRect = LeadRect.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom)destRect = RasterImage.CalculatePaintModeRectangle(image.ImageWidth,image.ImageHeight,destRect,RasterPaintSizeMode.Fit,RasterPaintAlignMode.Center,RasterPaintAlignMode.Center)Dim xform As RasterRegionXForm = GetXForm(destRect)Using g As Graphics = CreateGraphics()RasterImagePainter.FrameRegion(image, g, xform, frameIndex)End Using' advance to next frameframeIndex = frameIndex + 1If frameIndex > RasterImagePainter.MaxRegionFrameIndex ThenframeIndex = 0End IfEnd SubEnd ClassPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
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
