영어로 읽기

다음을 통해 공유


잉크 데이터

잉크를 수집한 후 애플리케이션은 해당 데이터를 관리, 조작 및/또는 다른 미디어로 전송할 수 있습니다. 잉크의 선택, 복사, 이동, 저장, 보기 및 변경 작업은 Ink 개체 및 포함된 멤버(예: Strokes 컬렉션 및 Stroke 개체)에서 수행됩니다.

참고

애플리케이션은 Real-Time 스타일러스를 사용하여 데이터를 고유한 형식(예: 스트로크 저장)으로 유지하도록 선택할 수 있습니다.

 

잉크, 스트로크 및 패킷

Ink 개체는 InkCollector 개체에서 수집된 입력을 관리, 조작 및 저장하는 기본 데이터 형식입니다. Ink 개체에는 하나 이상의 Stroke 개체와 이러한 스트로크를 관리하고 조작하는 일반적인 메서드 및 속성이 포함되어 있습니다. 스트로크는 단일 펜다운, 펜 이동 및 펜업 시퀀스로 캡처되는 데이터 집합으로 정의됩니다. 스트로크 데이터에는 패킷 컬렉션이 포함됩니다. 패킷은 태블릿 디바이스가 각 샘플 지점에서 보내는 데이터 집합입니다. 이 데이터에는 좌표, 펜 압력, 펜 각도 및 하드웨어에서 전송할 수 있는 기타 모든 정보와 같은 정보가 포함됩니다. Stroke 개체의 PacketDescription 속성은 Tablet에서 생성하는 패킷을 설명합니다.

스트로크

Ink 개체의 Strokes 속성을 사용하여 Ink 개체의 스트로크 스냅샷 가져올 수 있습니다. Strokes 속성은 Strokes 속성을 읽을 때 Ink 개체의 스트로크에 대한 참조 컬렉션입니다. 이후에 Ink 개체에 스트로크를 추가하거나 삭제하는 경우 이전에 가져온 Strokes 컬렉션은 업데이트되지 않습니다. 또한 Strokes 속성은 값이며, 다른 값과 마찬가지로 변수에 할당되지 않는 한 scope 제외됩니다.

Strokes 속성을 Ink 개체와 동기화된 상태로 유지하려면 Strokes 컬렉션의 StrokesAddedStrokesRemoved 이벤트에 대한 이벤트 처리기에 래핑합니다. 처리기는 두 이벤트 중 하나가 발생할 때 Strokes 속성의 새 복사본을 가져와야 합니다. 이벤트가 발생하기 전에 scope 없는 Strokes 컬렉션에 이벤트 처리기를 추가하지 않도록 주의해야 합니다.

이 예제 theAddedStrokesIDs 에서는 처리기에서 strokes 속성의 새 복사본으로 업데이트됩니다 StrokesAdded_Event .

public void StrokesAdded_Event(object sender, StrokesEventArgs e)
{
    int [] theAddedStrokesIDs = e.StrokeIds;
    theListBox.Items.Clear();
    foreach (int i in theAddedStrokesIDs)
    {
        theListBox.Items.Add("Added Stroke ID: " + i.ToString());
    }
}

PacketDescription 속성

Ink 개체의 PacketDescription 속성은 애플리케이션이 태블릿 PC 디바이스에서 가져오는 각 패킷의 정보 집합을 정의합니다. 정보는 일반적으로 좌표를 포함하지만 펜 압력 또는 펜 각도와 같은 훨씬 더 자세한 정보(태블릿 PC 디지타이저의 기능에 따라 다름)를 포함할 수 있습니다. 잉크를 수집하기 전에 InkCollector 또는 InkOverlay 개체에서 패킷 설명을 설정하여(DesiredPacketDescription 속성을 사용하여) 받을 태블릿 PC 디바이스 속성을 완전히 제어할 수 있습니다.

Extended Properties

확장 속성은 애플리케이션 정의 데이터를 Ink 및 기타 개체에 연결하는 메커니즘을 제공합니다. 확장 속성에 대한 자세한 내용은 ExtendedProperties 컬렉션을 참조하세요.

잉크 렌더링

렌더러 개체는 잉크 렌더링을 담당합니다. 적절한 태블릿 컨텍스트가 제공되면 렌더러 개체는 잉크 공간 좌표를 픽셀에 매핑하고, 보기 변환을 적용하고, 화면 및 프린터에 잉크를 표시할 수 있습니다. DrawDrawStroke 메서드는 잉크를 렌더링하는 기본 메서드입니다. 창에 잉크를 표시하는 방법에 대한 자세한 내용은 렌더러 개체를 참조하세요.

Cusps

스트로크는 일반적으로 펜이 그리기 표면으로 낮아지고 펜이 발생할 때 종료될 때 시작됩니다. 스트로크 내에서, 피크, 각도, 방향의 급진적 인 변화는 cusps라고합니다. 스트로크의 엔드포인트도 cusps로 간주됩니다. 예를 들어 대문자 "L"에는 가운데에 하나씩, 각 끝에 하나씩 세 개의 커프가 있습니다.

스트로크를 입력하면 일반적으로 베지어(또는 폴리라인) 곡선을 사용하여 부드럽게 처리되고 렌더링됩니다. 베지어 곡선은 커프스를 작은 루프로 바꿀 수 있습니다. 예를 들어 필기장 문자 "i"의 피크는 필기체 "e"를 닮도록 부드럽게 될 수 있습니다. 이를 방지하기 위해 Microsoft 렌더러에는 cusps를 다르게 처리하는 "사전 베지어" 단계가 있습니다.

또한 Cusps를 사용하여 Stroke 개체를 삭제 가능한 단위로 세분화할 수 있습니다. 예를 들어 대문자 "L"의 세로 쪽을 선택하면 해당 쪽만 지워지는 것을 나타낼 수 있습니다. 지울 스트로크의 부분은 두 개의 커프 사이의 부분이 됩니다.