문제

My Application에서 사용자는 SDKSamples (MS Surface SP1 SDK가 제공)의 Photopad (Photo Paint App)와 매우 유사한 SurfaceInkCanvas를 갖는 여러 개체 (라이브러리라고 함)를 만들 수 있습니다. 잉크 카나바스 (드로잉 객체)의 내용을 절약하는 가장 좋은 방법은 무엇이 수십이거나 수백 명이 생성 될 수 있음을 주어졌습니다.

일부 연구가 끝나면 이미지, JPG 또는 PNG로 그것을 변환하지만이 방법은 확장 가능한 IMO로 보이지 않습니다.

데이터베이스 (바람직하게는 SQLite)에 점을 저장할 수 있습니까?

목표는 적재시 추가 편집을 위해 도면 (InkCanvas의 내용)을 복원 할 수 있어야합니다.

도움이 되었습니까?

해결책 2

Microsoft는 StroKes 컬렉션을 .isf 파일에 저장하는 잉크 직렬화 형식에 대한 ISF가 서 있도록 ISF를 저장하는 데 사용하는 형식입니다.

그러나 예제 각 도면은 별도로 저장됩니다.(그러나 심지어 더 편집하거나 변환 (내보내) 비트 맵으로 쉽게로드 할 수있는 (그러나 소형) .ISF 파일.

좋은 방법은 파일에서 각 도면을 저장하는 것입니다 (비록이면은 SQLite DB에 저장하는 것보다 비싸고 시간이 지남에 따라)을 저장하고 ID와 함께 각각의 경로를 저장합니다.데이터베이스는 각 세션을 식별합니다. 확장 성 지점 에서이 방법을 더 최적화하기위한 제안은 무엇입니까?

다른 팁

비트 맵에서 벡터 라인을 복원하는 벡터 선이 훨씬 더 어렵고 비트 맵 변환에 대한 벡터보다 훨씬 더 어렵고 잠재적으로 손실이 없으므로 매우 효율적이지 않아서 매우 어렵고 잠재적으로 손실이 발생하지 않습니다.데이터 밀도 관점.

스트로크 속성에 저장된 행 컬렉션을 저장하고 복원하는 코드를 작성할 수 있습니다.이렇게하면 데이터의 크기를 최소한으로 줄이고 데이터베이스에 쉽게 저장할 수 있습니다.각 스트로크에는 라인이 보이는 것과 줄을 구성하는 점 집합에 대한 몇 가지 데이터가 있습니다.다시로드 할 때 다른 inkcanvas로 데이터를 추출하고 복원하는 것은 상당히 간단합니다.

XAMLWriter / XamlReader를 사용하여 전체 inkcanvas를 XML로 직렬화 할 수 있지만 새로운 deserialized 인스턴스를 UI에 넣고 이름 지정 또는 자원 합병증이 없는지 확인해야합니다.이 방법으로 오류를 일으키는 경향이있는 XAML.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top