Public Sub AddRectanglesOnImageInImageViewer(viewer As Vintasoft.Imaging.UI.ImageViewer)
Dim random As New System.Random()
' create a set of random red rectangles
Dim redObjects As New Vintasoft.Imaging.UI.VisualTools.ColoredObjects(Of HightlightRectangle)(CreateRandomHightlightRectangles(random, viewer.Image.Width, viewer.Image.Height, 16))
' set the brush for red rectangles
redObjects.Brush = New System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(128, 255, 0, 0))
' set the pen for red rectangles
redObjects.Pen = New System.Drawing.Pen(System.Drawing.Color.FromArgb(64, 0, 0, 0))
' create a set of random green rectangles
Dim greenObjects As New Vintasoft.Imaging.UI.VisualTools.ColoredObjects(Of HightlightRectangle)(CreateRandomHightlightRectangles(random, viewer.Image.Width, viewer.Image.Height, 16))
' set the brush for green rectangles
greenObjects.Brush = New System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(128, 0, 255, 0))
' set the pen for green rectangles
greenObjects.Pen = New System.Drawing.Pen(System.Drawing.Color.FromArgb(64, 0, 0, 0))
' create a set of random blue rectangles
Dim blueObjects As New Vintasoft.Imaging.UI.VisualTools.ColoredObjects(Of HightlightRectangle)(CreateRandomHightlightRectangles(random, viewer.Image.Width, viewer.Image.Height, 16))
' set the brush for blue rectangles
blueObjects.Brush = New System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(128, 0, 0, 255))
' set the pen for blue rectangles
blueObjects.Pen = New System.Drawing.Pen(System.Drawing.Color.FromArgb(64, 0, 0, 0))
' create the visual tool for highlighting rectangles on image in image viewer
Dim highlightTool As New Vintasoft.Imaging.UI.VisualTools.HighlightTool(Of HightlightRectangle)()
' add red rectangles to the visual tool
highlightTool.Items.Add(redObjects)
' add green rectangles to the visual tool
highlightTool.Items.Add(greenObjects)
' add blue rectangles to the visual tool
highlightTool.Items.Add(blueObjects)
' set the HighlightTool as the active visual tool in image viewer,
' i.e. show the rectangles on image in image viewer
viewer.VisualTool = highlightTool
End Sub
''' <summary>
''' Creates an array with random rectangles on image.
''' </summary>
Private Function CreateRandomHightlightRectangles(random As System.Random, imageWidth As Integer, imageHeight As Integer, rectCount As Integer) As HightlightRectangle()
Dim objects As HightlightRectangle() = New HightlightRectangle(rectCount - 1) {}
For i As Integer = 0 To rectCount - 1
Dim x As Integer = random.[Next](imageWidth)
Dim y As Integer = random.[Next](imageHeight)
Dim width As Integer = random.[Next](System.Math.Min(100, imageWidth - x))
Dim height As Integer = random.[Next](System.Math.Min(100, imageHeight - y))
objects(i) = New HightlightRectangle(New System.Drawing.Rectangle(x, y, width, height))
Next
Return objects
End Function
''' <summary>
''' A rectangle that must be highlighted on image in image viewer.
''' </summary>
Public Class HightlightRectangle
Implements Vintasoft.Imaging.IBoundedObject
Private _rect As System.Drawing.Rectangle
Public Sub New(rect As System.Drawing.Rectangle)
_rect = rect
End Sub
Public Function GetBoundingBox() As System.Drawing.Rectangle Implements Vintasoft.Imaging.IBoundedObject.GetBoundingBox
Return _rect
End Function
End Class