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 개체의 도우미 속성으로는 Confidence 및 LineNumber 속성 등이 있습니다.
다음 표에서는 바이트 배열로 반환되는 값의 형식을 보여 줍니다.
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에서 지원