Просмотр миниатюр с аннотациями в WinForms
В этом разделе
Класс
AnnotatedThumbnailViewer является производным от класса
ThumbnailViewer и предназначен для просмотра миниатюр изображений с аннотациями.
Класс
AnnotatedThumbnailViewer расширяет функциональность класса
ThumbnailViewer и позволяет:
Вот C#/VB.NET код, который демонстрирует, как загрузить изображения с аннотациями из файла и отобразить их миниатюры с аннотациями:
void LoadImagesWithAnnotation(
Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer annotatedThumbnailViewer, string filename)
{
annotatedThumbnailViewer.Images.Add(filename);
}
Private Sub LoadImagesWithAnnotation(annotatedThumbnailViewer As Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer, filename As String)
annotatedThumbnailViewer.Images.Add(filename)
End Sub
Класс
AnnotatedThumbnailViewer можно использовать отдельно или вместе с классом
AnnotationViewer.
Если класс
AnnotatedThumbnailViewer используется отдельно, то он просто показывает аннотации на миниатюрах.
Если класс
AnnotatedThumbnailViewer используется вместе с классом
AnnotationViewer, то он отображает аннотации на миниатюрах и в то же время выполняет одновременное обновление миниатюры активного изображения в
AnnotationViewer, когда аннотации, которые связаны с миниатюрой, изменяются (добавляется новая аннотация, трансформируется существующая аннотация и т. д.).
Для повышения производительности приложения можно не обновлять миниатюру активного изображения после каждого изменения, связанного с его аннотациями, а только после завершения преобразования аннотации, например, когда вращение аннотации полностью завершено.
Вот C#/VB.NET код, который позволяет обновлять миниатюру активного изображения только после завершения преобразования аннотации:
Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer _annotatedThumbnailViewer1 =
new Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer();
Vintasoft.Imaging.Annotation.UI.AnnotationViewer _annottionViewer1 =
new Vintasoft.Imaging.Annotation.UI.AnnotationViewer();
bool _isAnnotationBeginInit = false;
bool _isAnnotationTransforming = false;
bool _showAnnotationTransformationOnThumbnail = false;
void annotationViewer1_AnnotationTransformingStarted(object sender,
Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs e)
{
_isAnnotationTransforming = true;
if (!_showAnnotationTransformationOnThumbnail)
{
_isAnnotationBeginInit = true;
e.AnnotationView.Data.BeginInit();
}
}
void annotationViewer1_AnnotationTransformingFinished(object sender,
Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs e)
{
_isAnnotationTransforming = false;
if (_isAnnotationBeginInit)
{
_isAnnotationBeginInit = false;
e.AnnotationView.Data.EndInit();
}
}
Private _annotatedThumbnailViewer1 As New Vintasoft.Imaging.Annotation.UI.AnnotatedThumbnailViewer()
Private _annottionViewer1 As New Vintasoft.Imaging.Annotation.UI.AnnotationViewer()
Private _isAnnotationBeginInit As Boolean = False
Private _isAnnotationTransforming As Boolean = False
Private _showAnnotationTransformationOnThumbnail As Boolean = False
Private Sub annotationViewer1_AnnotationTransformingStarted(sender As Object, e As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs)
_isAnnotationTransforming = True
If Not _showAnnotationTransformationOnThumbnail Then
_isAnnotationBeginInit = True
e.AnnotationView.Data.BeginInit()
End If
End Sub
Private Sub annotationViewer1_AnnotationTransformingFinished(sender As Object, e As Vintasoft.Imaging.Annotation.UI.VisualTools.AnnotationViewEventArgs)
_isAnnotationTransforming = False
If _isAnnotationBeginInit Then
_isAnnotationBeginInit = False
e.AnnotationView.Data.EndInit()
End If
End Sub