다음을 통해 공유


RecognitionAlternate.GetPropertyValue 메서드

업데이트: 2007년 11월

RecognitionAlternate 개체의 지정된 RecognitionProperty 값을 반환합니다.

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink(Microsoft.Ink.dll)

구문

‘선언
Public Function GetPropertyValue ( _
    g As Guid _
) As Byte()
‘사용 방법
Dim instance As RecognitionAlternate
Dim g As Guid
Dim returnValue As Byte()

returnValue = instance.GetPropertyValue(g)
public byte[] GetPropertyValue(
    Guid g
)
public:
array<unsigned char>^ GetPropertyValue(
    Guid g
)
public byte[] GetPropertyValue(
    Guid g
)
public function GetPropertyValue(
    g : Guid
) : byte[]

매개 변수

  • g
    형식: System.Guid
    반환할 대체 항목의 속성이며, RecognitionProperty 개체에 있는 필드 중 하나의 GUID(Globally Unique Identifier)입니다.

반환 값

형식: array<System.Byte[]
속성 형식의 값을 바이트 배열 형식으로 반환합니다. 반환 값은 속성 형식에 따라 다르게 해석됩니다.

설명

이 메서드를 사용하면 RecognitionAlternate 개체에 해당 도우미 속성이 없는 RecognitionProperty 개체의 속성 값을 가져올 수 있습니다. RecognitionAlternate 개체의 도우미 속성으로는 ConfidenceLineNumber 속성 등이 있습니다.

다음 표에서는 바이트 배열로 반환되는 값의 형식을 보여 줍니다.

RecognitionProperty 형식

설명

ConfidenceLevel

RecognitionConfidence 열거형 값

HotPoint

Point 개체

LineMetrics

LATTICE_METRICS Structure 구조체와 동일

LineNumber

Int32

MaximumStrokeCount

사용되지 않음

PointsPerInch

사용되지 않음

Segmentation

사용되지 않음. AlternatesWithConstantPropertyValues 메서드를 대신 사용하십시오.

대체 항목에서 노출되는 Recognizer 속성을 조사하려면 우선 SupportedProperties 속성을 통해 사용 가능한 속성을 확인합니다. 이러한 속성은 RecognitionAlternate에 전달될 수도 있고 그렇지 않을 수도 있습니다. 그런 다음 GetPropertyValue를 사용하여 RecognitionAlternate에서 노출되는 속성을 확인합니다.

참고

일부 Recognizer 속성은 RecognitionAlternate 개체에 전달되지 않습니다. 예를 들어 Microsoft® 제스처 인식기는 SupportedProperties 속성을 통해서만 퀴리할 수 있는 HotPoint를 노출합니다. HotPoint 속성은 RecognitionAlternate에서 노출되지 않습니다.

예제

이 C# 예제에서는 Strokes 컬렉션을 인식하는 데 사용되는 기준선을 표시합니다. GetPropertyValue 메서드는 최상위 대체 항목의 줄 단위를 가져옵니다. 그런 다음 InkOverlay인 theInkOverlay에 연결된 Renderer 개체를 사용하여 잉크 공간 좌표를 픽셀 좌표로 변환합니다. 마지막으로 기준선을 녹색으로 그립니다. 이 예제에서는 이미 SupportedProperties 속성을 확인하여 LineMetrics 속성이 지원되는지 확인했다고 가정합니다.

[C#]

using Microsoft.Ink;
using System.Drawing.Drawing2D;
using System.IO;
//...
    private void DrawBaseline(Strokes theStrokes)
    {
        // Get the top alternate for all the strokes
        RecognizerContext context = new RecognizerContext();
        context.Strokes = theStrokes;
        RecognitionStatus status = new RecognitionStatus();
        RecognitionResult result = context.Recognize(out status);
        RecognitionAlternate topAlternate = result.TopAlternate;

        // Get the line metrics from the top alternate
        byte [] byteArray = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics);
        using (MemoryStream stream = new MemoryStream(byteArray))
        using (BinaryReader reader = new BinaryReader(stream))
        {
            int startX = reader.ReadInt32();
            int startY = reader.ReadInt32();
            int endX = reader.ReadInt32();
            int endY = reader.ReadInt32();

            // Convert baseline to pixel coordinates
            Graphics tempGraphics = CreateGraphics();
            Point startPoint = new Point(startX, startY);
            Point endPoint = new Point(endX, endY);
            theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref startPoint);
            theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref endPoint);
            tempGraphics.DrawLine(new Pen(Color.Green), startPoint, endPoint);

            // Dispose of temporary graphics
            tempGraphics.Dispose();
        }
    }

이 Microsoft Visual Basic® .NET 예제에서는 Strokes 컬렉션을 인식하는 데 사용되는 기준선을 표시합니다. GetPropertyValue 메서드는 최상위 대체 항목의 줄 단위를 가져옵니다. 그런 다음 InkOverlay인 theInkOverlay에 연결된 Renderer 개체를 사용하여 잉크 공간 좌표를 픽셀 좌표로 변환합니다. 마지막으로 기준선을 녹색으로 그립니다. 이 예제에서는 이미 SupportedProperties 속성을 확인하여 LineMetrics 속성이 지원되는지 확인했다고 가정합니다.

[Visual Basic]

Imports Microsoft.Ink
Imports System.Drawing.Drawing2D
Imports System.IO
'...
    Private Sub DrawBaseline(ByVal theStrokes As Strokes)
        ' Get the top alternate for all the strokes
        Dim context As New RecognizerContext()
        context.Strokes = theStrokes
        Dim status As New RecognitionStatus()
        Dim result As RecognitionResult = context.Recognize(status)
        Dim topAlternate As RecognitionAlternate = result.TopAlternate

        ' Get the line metrics from the top alternate
        Dim byteArray() As Byte = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics)
        Dim stream As New MemoryStream(byteArray)
        Dim reader As New BinaryReader(stream)

        Dim startX As Integer = reader.ReadInt32()
        Dim startY As Integer = reader.ReadInt32()
        Dim endX As Integer = reader.ReadInt32()
        Dim endY As Integer = reader.ReadInt32()

        ' Convert baseline to pixel coordinates
        Dim tempGraphics As Graphics = CreateGraphics()
        Dim startPoint As New Point(startX, startY)
        Dim endPoint As New Point(endX, endY)
        theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, startPoint)
        theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, endPoint)
        tempGraphics.DrawLine(New Pen(Color.Green), startPoint, endPoint)

        ' Clean up
        tempGraphics.Dispose()
        reader.Close()
        stream.Close()
    End Sub

플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

RecognitionAlternate 클래스

RecognitionAlternate 멤버

Microsoft.Ink 네임스페이스

RecognitionAlternate.AlternatesWithConstantPropertyValues

RecognitionProperty