VintaSoft Imaging .NET SDK 15.1: Документация для .NET разработчика
Vintasoft.Imaging.Annotation.Wpf.UI.Measurements Namespace / WpfImageMeasureTool Class
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
В этом разделе
Класс WpfImageMeasureTool
В этом разделе
Визуальный инструмент, позволяющий измерять объекты на изображениях в просмотрщике изображений.
Объектная модель
WpfMeasurementAnnotationView AnnotationFont AnnotationFont WpfAnnotationView WpfAnnotationView WpfAnnotationViewCollection WpfRotationAssistantArea WpfRotationPoint CopyItemUIAction CutItemUIAction PasteItemWithOffsetUIAction DeleteItemUIAction SelectAllItemsUIAction DeselectAllItemsUIAction DeleteAllItemsUIAction IObjectClipboard SelectedWpfAnnotationViewCollection IWpfInteractionController WpfImageViewer WpfImageMeasureTool
Синтаксис
'Declaration

<DesignTimeVisibleAttribute("Visible = False")>
<ToolboxItemAttribute("ToolboxItemType = null", "ToolboxItemTypeName = ")>
<DefaultPropertyAttribute("Content")>
<ContentPropertyAttribute("Content")>
<LocalizabilityAttribute(None)>
<StyleTypedPropertyAttribute("Property = FocusVisualStyle", "StyleTargetType = System.Windows.Controls.Control")>
<XmlLangPropertyAttribute("Name = Language")>
<UsableDuringInitializationAttribute("Usable = True")>
<RuntimeNamePropertyAttribute("Name = Name")>
<UidPropertyAttribute()>
<TypeDescriptionProviderAttribute("TypeName = MS.Internal.ComponentModel.DependencyObjectProvider")>
<NameScopePropertyAttribute("Name = NameScope", "Type = System.Windows.NameScope")>
Public Class WpfImageMeasureTool
   Inherits Vintasoft.Imaging.Annotation.Wpf.UI.VisualTools.WpfAnnotationVisualTool

[DesignTimeVisible("Visible = False")]
[ToolboxItem("ToolboxItemType = null", "ToolboxItemTypeName = ")]
[DefaultProperty("Content")]
[ContentProperty("Content")]
[Localizability(None)]
[StyleTypedProperty("Property = FocusVisualStyle", "StyleTargetType = System.Windows.Controls.Control")]
[XmlLangProperty("Name = Language")]
[UsableDuringInitialization("Usable = True")]
[RuntimeNameProperty("Name = Name")]
[UidProperty()]
[TypeDescriptionProvider("TypeName = MS.Internal.ComponentModel.DependencyObjectProvider")]
[NameScopeProperty("Name = NameScope", "Type = System.Windows.NameScope")]
public class WpfImageMeasureTool : Vintasoft.Imaging.Annotation.Wpf.UI.VisualTools.WpfAnnotationVisualTool

Пример

Вот C#/VB.NET код, который демонстрирует, как измерить диагональный размер изображения в пикселях в просмотрщике изображений.


''' <summary>
''' Returns the diagonal size of image in image viewer in pixels.
''' </summary>
''' <param name="viewer">An image viewer.</param>
''' <returns>The diagonal size of image in image viewer in pixels.</returns>
''' <remarks>
''' Creates a measurement annotation to measure the diagonal.
''' </remarks>
Public Shared Function GetDiagonalImageSizeExample(viewer As Vintasoft.Imaging.Wpf.UI.WpfImageViewer) As Double
    ' create the image measure tool
    Dim imageMeasureTool As New Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfImageMeasureTool()

    ' set visual tool as the active visual tool of image viewer
    viewer.VisualTool = imageMeasureTool

    ' create an annotation, which will display the measurement line
    Dim measurementLine As New Vintasoft.Imaging.Annotation.Measurements.LinearMeasuringData()
    ' set the start point of measurement line
    measurementLine.Points.Add(New System.Drawing.PointF(0, 0))
    ' set the end point of measurement line
    measurementLine.Points.Add(New System.Drawing.PointF(viewer.Image.Width, viewer.Image.Height))
    ' set pixels as units of measure for measurement line
    measurementLine.UnitsOfMeasure = Vintasoft.Imaging.UnitOfMeasure.Pixels

    ' create an annotation, which will display the measurement result
    Dim measurementResult As New Vintasoft.Imaging.Annotation.Measurements.MeasurementAnnotationData(measurementLine)
    ' set the text template for annotation with measurement result
    measurementResult.MeasuringTextTemplate = "{Length:f2} pixels"
    ' set the text block alignment for annotation with measurement result
    measurementResult.TextBlockAlignment = Vintasoft.Imaging.AnchorType.Center

    ' create the view for annotation with measurement result
    Dim measurementResultView As New Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfMeasurementAnnotationView(measurementResult)

    ' add annotation with measurement result to the annotation collection of image measure tool
    imageMeasureTool.AnnotationViewCollection.Add(measurementResultView)

    ' get measured value
    Dim measuredValues As System.Collections.Generic.Dictionary(Of String, Double) = measurementLine.GetMeasuredValues(viewer.Image)

    ' return length of the diagonal line
    Return measuredValues("Length")
End Function


/// <summary>
/// Returns the diagonal size of image in image viewer in pixels.
/// </summary>
/// <param name="viewer">An image viewer.</param>
/// <returns>The diagonal size of image in image viewer in pixels.</returns>
/// <remarks>
/// Creates a measurement annotation to measure the diagonal.
/// </remarks>
public static double GetDiagonalImageSizeExample(Vintasoft.Imaging.Wpf.UI.WpfImageViewer viewer)
{
    // create the image measure tool
    Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfImageMeasureTool imageMeasureTool =
        new Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfImageMeasureTool();

    // set visual tool as the active visual tool of image viewer
    viewer.VisualTool = imageMeasureTool;

    // create an annotation, which will display the measurement line
    Vintasoft.Imaging.Annotation.Measurements.LinearMeasuringData measurementLine =
        new Vintasoft.Imaging.Annotation.Measurements.LinearMeasuringData();
    // set the start point of measurement line
    measurementLine.Points.Add(new System.Drawing.PointF(0, 0));
    // set the end point of measurement line
    measurementLine.Points.Add(new System.Drawing.PointF(viewer.Image.Width, viewer.Image.Height));
    // set pixels as units of measure for measurement line
    measurementLine.UnitsOfMeasure = Vintasoft.Imaging.UnitOfMeasure.Pixels;

    // create an annotation, which will display the measurement result
    Vintasoft.Imaging.Annotation.Measurements.MeasurementAnnotationData measurementResult =
        new Vintasoft.Imaging.Annotation.Measurements.MeasurementAnnotationData(measurementLine);
    // set the text template for annotation with measurement result
    measurementResult.MeasuringTextTemplate = "{Length:f2} pixels";
    // set the text block alignment for annotation with measurement result
    measurementResult.TextBlockAlignment = Vintasoft.Imaging.AnchorType.Center;

    // create the view for annotation with measurement result
    Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfMeasurementAnnotationView measurementResultView =
        new Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfMeasurementAnnotationView(measurementResult);

    // add annotation with measurement result to the annotation collection of image measure tool
    imageMeasureTool.AnnotationViewCollection.Add(measurementResultView);

    // get measured value
    System.Collections.Generic.Dictionary<string, double> measuredValues = measurementLine.GetMeasuredValues(viewer.Image);

    // return length of the diagonal line
    return measuredValues["Length"];
}

Иерархия наследования

System.Object
   System.Windows.Threading.DispatcherObject
      System.Windows.DependencyObject
         System.Windows.Media.Visual
            System.Windows.UIElement
               System.Windows.FrameworkElement
                  System.Windows.Controls.Control
                     System.Windows.Controls.ContentControl
                        Vintasoft.Imaging.Wpf.UI.VisualTools.WpfVisualTool
                           Vintasoft.Imaging.Wpf.UI.VisualTools.UserInteraction.WpfUserInteractionVisualTool
                              Vintasoft.Imaging.Annotation.Wpf.UI.VisualTools.WpfAnnotationVisualTool
                                 Vintasoft.Imaging.Annotation.Wpf.UI.Measurements.WpfImageMeasureTool

Требования

Целевые платформы: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также