VintaSoft Imaging .NET SDK v8.6
Vintasoft.Imaging.UI.VisualTools Namespace / HighlightTool<T> Class
T must be a class that implements Vintasoft.Imaging.IBoundedObject interface.
Members Example



In This Topic
    HighlightTool<T> Class
    In This Topic
    Visual tool that allows to highlight several ColoredObjects<T> on the image.
    Object Model
    HighlightTool<T> ClassImageViewer Class
    Syntax
    'Declaration
     
    Public Class HighlightTool(Of T As {Class, IBoundedObject}) 
       Inherits VisualTool
    public class HighlightTool<T> : VisualTool 
    where T: class, IBoundedObject
    public __gc class HighlightTool<T> : public VisualTool 
    where T: ref class, IBoundedObject
    generic<typename T>
    public ref class HighlightTool : public VisualTool 
    where T: ref class, IBoundedObject
    Type Parameters
    T
    T must be a class that implements Vintasoft.Imaging.IBoundedObject interface.
    Example
    This example shows how to highlight a set of rectangles on an image.
    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
    public void AddRectanglesOnImageInImageViewer(Vintasoft.Imaging.UI.ImageViewer viewer)
    {
        System.Random random = new System.Random();
                
        // create a set of random red rectangles
        Vintasoft.Imaging.UI.VisualTools.ColoredObjects<HightlightRectangle> redObjects =
            new Vintasoft.Imaging.UI.VisualTools.ColoredObjects<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
        Vintasoft.Imaging.UI.VisualTools.ColoredObjects<HightlightRectangle> greenObjects =
            new Vintasoft.Imaging.UI.VisualTools.ColoredObjects<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
        Vintasoft.Imaging.UI.VisualTools.ColoredObjects<HightlightRectangle> blueObjects =
            new Vintasoft.Imaging.UI.VisualTools.ColoredObjects<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
        Vintasoft.Imaging.UI.VisualTools.HighlightTool<HightlightRectangle> highlightTool = 
            new Vintasoft.Imaging.UI.VisualTools.HighlightTool<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;
    }
                
    /// <summary>
    /// Creates an array with random rectangles on image.
    /// </summary>
    private HightlightRectangle[] CreateRandomHightlightRectangles(
        System.Random random,
        int imageWidth,
        int imageHeight,
        int rectCount)
    {
        HightlightRectangle[] objects = new HightlightRectangle[rectCount];
        for (int i = 0; i < rectCount; i++)
        {
            int x = random.Next(imageWidth);
            int y = random.Next(imageHeight);
            int width = random.Next(System.Math.Min(100, imageWidth - x));
            int height = random.Next(System.Math.Min(100, imageHeight - y));
            objects[i] = new HightlightRectangle(
                new System.Drawing.Rectangle(x, y, width, height));
        }
        return objects;
    }
                
    /// <summary>
    /// A rectangle that must be highlighted on image in image viewer.
    /// </summary>
    public class HightlightRectangle : Vintasoft.Imaging.IBoundedObject
    {
                
        System.Drawing.Rectangle _rect;
                
                
                
        public HightlightRectangle(System.Drawing.Rectangle rect)
        {
            _rect = rect;
        }
                
                
                
        public System.Drawing.Rectangle GetBoundingBox()
        {
            return _rect;
        }
                
    }
    Inheritance Hierarchy

    System.Object
       Vintasoft.Imaging.UI.VisualTools.VisualTool
          Vintasoft.Imaging.UI.VisualTools.HighlightTool<T>

    Requirements

    Target Platforms: Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP, Windows Server 2012, Windows Server 2008, Windows Server 2003

    See Also