VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
В этом разделе
    Просмотр изображений с аннотациями в WinForms
    В этом разделе
    Класс AnnotationViewer наследуется от класса ImageViewer и предназначен для просмотра изображений с аннотациями.

    Класс AnnotationViewer расширяет функциональность ImageViewer и:

    Программный доступ к аннотациям в WinForms просмотрщике изображений с аннотациями

    Доступ к коллекции данных аннотаций любого изображения, загруженного в просмотрщик изображений, можно получить с помощью свойства AnnotationViewer.AnnotationDataController. Коллекцию данных аннотаций сфокусированного изображения можно получить с помощью свойства AnnotationViewer.AnnotationDataCollection. Данные выбранной аннотации сфокусированного изображения можно получить с помощью свойства AnnotationViewer.FocusedAnnotationData.

    Коллекция видов аннотаций любого изображения, загруженного в просмотрщик изображений, доступна с помощью свойства AnnotationViewer.AnnotationViewController. Коллекцию видов аннотаций сфокусированного изображения можно получить с помощью свойства AnnotationViewer.AnnotationViewCollection. Вид выбранной аннотации сфокусированного изображения можно получить с помощью свойства AnnotationViewer.FocusedAnnotationView.

    AnnotationViewer вызывает событие AnnotationViewer.AnnotationDataControllerChanged при изменении коллекции изображений. AnnotationViewer вызывает событие AnnotationViewer.AnnotationViewCollectionChanged при изменении сфокусированного изображения. AnnotationViewer вызывает события AnnotationViewer.FocusedAnnotationViewChanging и AnnotationViewer.FocusedAnnotationViewChanged при изменении сфокусированной аннотации.


    Взаимодействие с аннотациями в WinForms просмотрщике изображений с аннотациями

    Класс AnnotationViewer содержит 2 визуальных инструмента, которые упрощают и делают более удобной работу с аннотациями.

    Первый предназначен для просмотра, взаимодействия и редактирования коллекции аннотаций сфокусированного изображения. Доступ к этому визуальному инструменту можно получить с помощью свойства AnnotationViewer.AnnotationVisualTool. Подробную информацию о классе AnnotationVisualTool можно найти в статье Просмотр и преобразование аннотаций. Взаимодействие с аннотациями.

    Второй визуальный инструмент позволяет выделять несколько аннотаций на изображении с помощью прямоугольного выделения. Доступ к нему можно получить с помощью свойства AnnotationViewer.AnnotationSelectionTool.

    По умолчанию класс AnnotationViewer создает составной визуальный инструмент, который сочетает в себе функциональность AnnotationViewer.AnnotationVisualTool и AnnotationViewer.AnnotationSelectionTool для более удобного взаимодействия с аннотациями. Также визуальные инструменты можно использовать отдельно.

    Вот C#/VB.NET код, который демонстрирует, как создать AnnotationViewer, который может прокручивать изображение и редактировать/выбирать аннотации выделенного изображения:
    public void SetCompositeVisualTool(
        Vintasoft.Imaging.Annotation.UI.AnnotationViewer annotationViewer)
    {
        annotationViewer.VisualTool = 
            new Vintasoft.Imaging.UI.VisualTools.CompositeVisualTool(
                annotationViewer.AnnotationVisualTool,
                annotationViewer.AnnotationSelectionTool,
                new ScrollPages());
    }
    
    Public Sub SetCompositeVisualTool(annotationViewer As Vintasoft.Imaging.Annotation.UI.AnnotationViewer)
        annotationViewer.VisualTool = New Vintasoft.Imaging.UI.VisualTools.CompositeVisualTool(annotationViewer.AnnotationVisualTool, annotationViewer.AnnotationSelectionTool, New ScrollPages())
    End Sub
    


    Использование различных режимов взаимодействия аннотаций в WinForms просмотрщике изображений с аннотациями

    Класс AnnotationViewer позволяет выбирать режим взаимодействия между пользователь и аннотациями с использованием свойства AnnotationViewer.AnnotationInteractionMode. Доступны следующие режимы: Собятия AnnotationViewer.AnnotationInteractionModeChanging и AnnotationViewer.AnnotationInteractionModeChanged генерируются до и после изменения режима взаимодействия между пользователем и аннотациями в просмотрщике.

    Подробную информацию о режимах взаимодействия пользователя с аннотациями можно найти в статье "Просмотр и преобразование аннотаций. Взаимодействие с аннотациями."


    Взаимодействие с аннотациями в WinForms просмотрщике изображений с аннотациями на сенсорном экране

    По умолчанию визуальный инструмент аннотаций имеет интерактивные области, которые удобно использовать, если пользователь использует мышь для взаимодействия с аннотацией. Области взаимодействия по умолчанию неудобно использовать, если пользователь работает с сенсорным экраном и взаимодействует с аннотациями пальцами. Пальцы всегда толще курсора мыши, поэтому для комфортного взаимодействия с аннотациями на сенсорном экране области взаимодействия должны быть больше. Класс AnnotationInteractionAreaAppearanceManager позволяет управлять настройками областей взаимодействия визуального инструмента.

    Вот C#/VB.NET код, который демонстрирует, как изменить радиус и цвет точек, что позволяют масштабировать и вращать аннотации:
    
    // ...
    
    /// <summary>
    /// Manager of interaction areas.
    /// </summary>
    Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager _interactionAreaAppearanceManager;
    
    // ...
    
    
    /// <summary>
    /// Initializes a new instance of the <see cref="MainForm"/> class.
    /// </summary>
    public MainForm()
    {
        // ...
    
        _interactionAreaAppearanceManager = CreateCustomInteractionAreaAppearanceManager(annotationImageViewer1.AnnotationVisualTool);
    
        // ...
    }
    
    // ...
    
    /// <summary>
    /// Creates the custom interaction area appearance manager.
    /// </summary>
    /// <param name="visualTool">The visual tool.</param>
    /// <returns>
    /// The custom interaction area appearance manager.
    /// </returns>
    public Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager CreateCustomInteractionAreaAppearanceManager(
        Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationVisualTool visualTool)
    {
        // create manager
        Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager manager =
            new Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager();
        manager.VisualTool = visualTool;
    
        // begin the initialization of manager
        manager.BeginInit();
    
        // resize point
    
        manager.ResizePointsRadius = 10;
        manager.ResizePointsInteractionRadius = 10;
        manager.ResizePointsBackgroundColor = System.Drawing.Color.FromArgb(128, System.Drawing.Color.Yellow);
    
        // rotation point
    
        manager.RotationPointDistance = 30;
        manager.RotationPointRadius = 10;
        manager.RotationPointInteractionRadius = 10;
        manager.RotationPointBackgroundColor = System.Drawing.Color.FromArgb(128, System.Drawing.Color.Pink);
    
        // end the initialization of manager
        manager.EndInit();
    
        // return the manager
        return manager;
    }
    
    // ...
    
    /// <summary>
    /// Main form is closed.
    /// </summary>
    protected override void OnFormClosed(System.Windows.Forms.FormClosedEventArgs e)
    {
        base.OnFormClosed(e);
    
        _interactionAreaAppearanceManager.Dispose();
    }
    
    // ...
    
    
    
    ' ...
    
    ''' <summary>
    ''' Manager of interaction areas.
    ''' </summary>
    Private _interactionAreaAppearanceManager As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager
    
    ' ...
    
    
    ''' <summary>
    ''' Initializes a new instance of the <see cref="MainForm"/> class.
    ''' </summary>
    Public Sub New()
        ' ...
    
    
            ' ...
        _interactionAreaAppearanceManager = CreateCustomInteractionAreaAppearanceManager(annotationImageViewer1.AnnotationVisualTool)
    End Sub
    
    ' ...
    
    ''' <summary>
    ''' Creates the custom interaction area appearance manager.
    ''' </summary>
    ''' <param name="visualTool">The visual tool.</param>
    ''' <returns>
    ''' The custom interaction area appearance manager.
    ''' </returns>
    Public Function CreateCustomInteractionAreaAppearanceManager(visualTool As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationVisualTool) As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager
        ' create manager
        Dim manager As New Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationInteractionAreaAppearanceManager()
        manager.VisualTool = visualTool
    
        ' begin the initialization of manager
        manager.BeginInit()
    
        ' resize point
    
        manager.ResizePointsRadius = 10
        manager.ResizePointsInteractionRadius = 10
        manager.ResizePointsBackgroundColor = System.Drawing.Color.FromArgb(128, System.Drawing.Color.Yellow)
    
        ' rotation point
    
        manager.RotationPointDistance = 30
        manager.RotationPointRadius = 10
        manager.RotationPointInteractionRadius = 10
        manager.RotationPointBackgroundColor = System.Drawing.Color.FromArgb(128, System.Drawing.Color.Pink)
    
        ' end the initialization of manager
        manager.EndInit()
    
        ' return the manager
        Return manager
    End Function
    
    ' ...
    
    ''' <summary>
    ''' Main form is closed.
    ''' </summary>
    Protected Overrides Sub OnFormClosed(e As System.Windows.Forms.FormClosedEventArgs)
        MyBase.OnFormClosed(e)
    
        _interactionAreaAppearanceManager.Dispose()
    End Sub
    
    ' ...
    
    


    Ограничение построения/преобразования аннотаций в области изображения в WinForms просмотрщике изображений с аннотациями.

    AnnotationViewer позволяет ограничить область, в которой аннотация может быть построена или преобразована. Эту функцию можно включить с помощью свойства AnnotationViewer.IsAnnotationBoundingRectEnabled. Свойство AnnotationViewer.AnnotationBoundingRect позволяет задать область изображения, в которой можно построить или преобразовать аннотацию.


    Выбор одной или нескольких аннотаций в WinForms просмотрщике изображений с аннотациями

    По умолчанию, класс AnnotationViewer позволяет выбрать несколько аннотаций. Выбранную коллекцию аннотаций можно получить с помощью свойства AnnotationViewer.SelectedAnnotations. Возможность выбора нескольких аннотаций можно отключить с помощью свойства AnnotationViewer.AnnotationMultiSelect.

    Подробную информацию о принципах выбора аннотаций можно найти в статье "Просмотр и преобразование аннотаций. Взаимодействие с аннотациями."


    Построение аннотации в WinForms просмотрщике изображений с аннотациями

    Метод AnnotationViewer.AddAndBuildAnnotation позволяет запустить процесс построения аннотаций, метод AnnotationViewer.FinishAnnotationBuilding позволяет завершить процесс построения аннотации, метод AnnotationViewer.CancelAnnotationBuilding позволяет отменить процесс построения аннотации.
    AnnotationViewer вызывает событие AnnotationViewer.AnnotationBuildingStarted при запуске процесса создания аннотации, AnnotationViewer вызывает событие AnnotationViewer.AnnotationBuildingFinished при завершении процесса создания аннотации, AnnotationViewer вызывает AnnotationViewer.AnnotationBuildingCanceled событие, когда процесс построения аннотации отменяется.

    Подробную информацию о принципах выбора аннотаций можно найти в статье "Просмотр и преобразование аннотаций. Взаимодействие с аннотациями."


    Преобразование аннотации в WinForms просмотрщике изображение с аннотациями

    Преобразование выделенной аннотации можно запустить с помощью мыши.
    AnnotationViewer вызывает событие AnnotationViewer.AnnotationTransformingStarted при запуске процесса преобразования аннотации, AnnotationViewer вызывает событие AnnotationViewer.AnnotationTransformingFinished при завершении процесса преобразования аннотации.

    Подробную информацию о принципах выбора аннотаций можно найти в статье "Просмотр и преобразование аннотаций. Взаимодействие с аннотациями."


    Расширение функциональности WinForms просмотрщика изображений с аннотациями

    Класс AnnotationViewer имеет открытую архитектуру и позволяет изменять практически любую функциональность в производных классах.