InkCanvas 스트로크 컬렉션을 svg 이미지로 저장할 수 있습니까? 내가 찾은 것 중 하나는 스트로크를 ISF (Ink Serialized Format)가 내장 된 GIF로 저장하거나 비트 맵으로 렌더링 할 수 있다는 것입니다. 스트로크를 벡터 형식으로 저장하여 다른 플랫폼 (예 : 웹)과 상호 운용 할 수 있습니다.Wpf InkCanvas는 stv를 svg로 저장합니다.
답변
나는 그것을 알아 냈다. 여기
는- 으로 반복
StrokeCollection
- 을 통해 단계
GetGeometry
함수를 호출하고GetOutlinedPathGeometry
를 호출하여 각Stroke
의PathGeometry
을 얻을 수 있습니다. - 중에서
Figures
을 얻으십시오.PathGeometry
을 XAML에 저장하고Figures
특성을 구문 분석하여이 작업을 수행하고 있습니다 (XElement.Parse
). - 그럼 이제는 svg 문서를 만들고 각 경로를 추가 할 수 있습니다 (아래 코드 참조).
저는 SVG Rendering Library을 사용하여 SVG 문서를 만듭니다.
var svg = new SvgDocument();
var colorServer = new SvgColourServer(System.Drawing.Color.Black);
var group = new SvgGroup {Fill = colorServer, Stroke = colorServer};
svg.Children.Add(group);
foreach (var stroke in InkCanvas.Strokes)
{
var geometry = stroke.GetGeometry(stroke.DrawingAttributes).GetOutlinedPathGeometry();
var s = XamlWriter.Save(geometry);
if (s.IsNotNullOrEmpty())
{
var element = XElement.Parse(s);
var data = element.Attribute("Figures")?.Value;
if (data.IsNotNullOrEmpty())
{
group.Children.Add(new SvgPath
{
PathData = SvgPathBuilder.Parse(data),
Fill = colorServer,
Stroke = colorServer
});
}
}
}
매우 유용합니다! 난 다음에 'foreach' 루프의 첫 번째 행을 변경 제안 : 'VAR 형상 = stroke.GetGeometry (stroke.DrawingAttributes)를 .GetOutlinedPathGeometry을()' 이 스트로크를 사용하여 만든 경우되도록 할 다른 도구/속성은 그대로 유지됩니다. 예를 들어 누군가 라운드가 아닌 사각형 모양의 펜촉을 사용하는 경우 EDIT : 이것을 반영하도록 답변을 편집했습니다. –
@DaxPandhi 수정을 시도한 적이 있습니까? 편집과 함께 작동하는지 확인하기 만하면됩니다. 그렇다면 확인하고 수정 사항을 승인합니다. 감사합니다 – Mayank
예, 성공적으로 내 자신의 응용 프로그램에서 수정 된 코드를 사용하고 잘 작동합니다. 먼저 붙여 넣은 원본 코드를 시도해 보았습니다. 작동하는 동안 제 다른 펜촉 모양이 저장되지 않았습니다. 수정 후 모양을 보존 할 수있었습니다. –
- 1. UIBezierPath를 SVG로 인코딩하는 방법은 무엇입니까?
- 2. wpf 바인딩 지원 많은 객체를 많이 저장합니다.
- 3. wpf 뷰를 이미지로 저장합니다. 선호하는 .png
- 4. WPF HTML 파일에 HTML 문자열을 추가하여 저장합니다.
- 5. CSS3 그라데이션을 SVG로
- 6. SVG에서 서버 측 SVG로?
- 7. three.js 모델을 svg로 변환
- 8. RaphaelJS가 SVG로 줄임
- 9. svg로 Jquery selector
- 10. XPS를 SVG로 변환
- 11. Inkscape의 SVG에서 SVG로
- 12. 텍스트 로고 벡터 SVG로
- 13. webGL html을 SVG로 변환
- 14. Silverlight : SVG로 UIElement 변환
- 15. fabric.js가 SVG로 내보내기하지 않습니다.
- 16. ChartFX7을 Java에서 SVG로 내보내기
- 17. 캔버스에서 svg로 이동
- 18. 캔버스 또는 컨트롤 포인트를 SVG로 변환
- 19. PSD 그림자를 Svg로 변환하는 방법?
- 20. Dojox GFX 캔버스를 SVG로 저장
- 21. 공유 리눅스 서버에서 SVG로 연결
- 22. 텍스트 XML의 일부를 SVG로 바꿈
- 23. 테두리가있는 SVG에서 SVG로 일괄 처리
- 24. HTML 안에 SVG로 이미지 표시
- 25. 구글 차트를 SVG로 저장 하시겠습니까?
- 26. GIS지도 데이터를 SVG로 변환 하시겠습니까?
- 27. SVG로 2D 렌더링 및 확대
- 28. C# WPF 캔버스를 자식을 포함하여 이미지로 동적으로 저장합니다.
- 29. 10MB PDF를 웹용 SVG로 신속하게 변환하는 방법
- 30. MDL 아이콘 글꼴 hamburgeur 아이콘을 svg로 바꿉니다
질문이 너무 광범위하다는 것을 잘 모르시겠습니까? 매우 구체적인 질문을하고 있습니다. 불쾌감은 없지만 너무 광범위하기 때문에 투표를 끝내기로 한 사람은 질문을 다시 읽어야합니다. – Mayank
GIF로 저장하는 방법을 추가 할 수 있습니다. 다음 svg 사람을 요구해 너무 넓지 않을 것입니다. – rene