다음을 통해 공유


잉크 데이터

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

메모

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

 

잉크, 스트로크 및 패킷

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

스트로크

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

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

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

확장 속성

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

잉크 렌더링

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

Cusps

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

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

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