글꼴 요소를 지원하는 SVG를 HTML 캔버스로 변환하기위한 훌륭한 라이브러리가 있습니까? 이미 canvg을 시도했지만 글꼴을 지원하지 않습니다.글꼴 요소를 지원하는 HTML5 캔버스에서 SVG 그리기
답변
HTML5 Canvas를 지원하는 브라우저는 SVG도 지원합니다. 따라서, 당신이 할 수 있습니다 :
var img = new Image;
img.onload = function(){ myCanvasContext.drawImage(img,0,0); };
img.src = "foo.svg";
이 기술의 유일한 단점은 SVG 도메인의 외부에있는 경우 캔버스가 오염 될 것입니다; 그것이 목표 인 경우 getImageData()
을 사용하여 결과 SVG를 읽을 수 없습니다. 나는이 테스트하고 작동 (동일한 보이는) IE9, 크롬 v11b, 사파리 V5 및 파이어 폭스 V4에 있다는 것을 확인했습니다 http://phrogz.net/tmp/canvas_from_svg.html
:
나는 내 서버에이 기술의 예를 넣었습니다.
[편집] 참고 :
크롬과 파이어 폭스는 현재 보안에 대한 '펀트'와 캔버스 당신이 어떤 SVG를 그리는 후 (예 :these have been fixedgetImageData()
또는toDataURL()
)을 읽는 당신을 허용 (에 관계없이 도메인의) 캔버스는파이어 폭스는 현재 버그 wher있다 SVG에
경우height
과width
속성이 지정되어 있지 않으면 SVG를 캔버스에 그릴 수 없습니다.
당신은 SVG는 HTML에 삽입 한 또는 원시 소스로 당신은 당신이 다음 캔버스에 그릴 수있는 HTML 이미지 요소에 SVG를 변환하는 데이터 URL을 사용할 수 있습니다
var img = new Image();
// here attach an onload handler that draws the image on the canvas
// svgSource is the raw svg xml
img.src = "data:image/svg+xml," + encodeURIComponent(svgSource);
복잡한 SVG 컨텐츠를 사용하면 데이터의 크기 제한에 부딪 힐 수 있습니다. URI - 필자의 경우 이는 복잡한 SVG를 그리기 위해 canvg를 사용하는 것 외의 옵션. –
나는 방금 간단한 img 태그, Phrogs의 방법과 canvg를 시도했다. 내 SVG에는 PNG가 임베드되어 있습니다. 그것은 단지 canvg에서 일했습니다. 다른 사람들은 임베디드 PNG가없는 이미지를 보여주었습니다. 표준 브라우저 또는 Chrome이있는 Android Jellybean에 있습니다.
- 1. HTML5 캔버스에서 회전 된 텍스트 그리기
- 2. GWT로 캔버스에서 그리기
- 3. html5 캔버스에서 겹치는 폴리곤
- 4. html5 캔버스에서 "지우기"
- 5. Android : 캔버스에서 그리기 및 회전
- 6. SVG 및 글꼴 메트릭
- 7. svg 이미지 위에 선 그리기
- 8. Html5 캔버스 그리기 문제
- 9. HTML5 : 태블릿 그리기
- 10. 캔버스에서 img 요소를 동적으로 만듭니다.
- 11. HTML5 SVG 및 마우스 이벤트
- 12. HTML5 캔버스 대 SVG/VML?
- 13. Android : 캔버스에서 그리기 및 비트 맵없이보기
- 14. 안드로이드 캔버스에서 텍스트 그리기 및 텍스트 변경
- 15. 캔버스에서 그리기 사이의 간격 설정 (C#)
- 16. HTML5 캔버스 그리기 및 업데이트
- 17. Html5 캔버스의 이미지를 부동 소수점 좌표로 그리기
- 18. HTML5 캔버스에서 XML로 또는 그 반대로
- 19. html5 캔버스에서 이미지 위치 가져 오기
- 20. HTML5 캔버스에서 생성 된 이미지의 이름 바꾸기
- 21. HTML5 캔버스에서 픽셀 완전 충돌 감지
- 22. HTML5 캔버스에서 애너 글리프 3D 이미지 만들기
- 23. html5 캔버스에서 텍스트를 천천히 채우는 방법
- 24. HTML5 캔버스에서 스트로크 경로 지우기 (루프 내에서)
- 25. HTML5 캔버스에서 반 화소를 그리면 속도가 향상되지 않을까요?
- 26. HTML5 캔버스에서 그림 그리기에 적합한 범위 검사를 수행하는 방법은 무엇입니까?
- 27. 유로 기호를 지원하는 글꼴 포함
- 28. 터치 그리기 이벤트 및 HTML5 캔버스
- 29. SVG 렌더링 게임 맵에서 직교 좌표 그리기
- 30. HTML5 Canvas와 SVG + Raphael.js의 장단점은 무엇입니까?
파이어 폭스에서는 작동하지 않습니다. – Nilesh
@Nilesh FireFox의 OS 및 버전은 무엇입니까? Windows 7에서 FF4.0을 사용하여 저에게 적합합니다. – Phrogz
자바 스크립트에서 svg를 문자열로 사용하고 있습니다. 나는 'img.src = "data : image/svg + xml,"+ svgString;과 같이 사용하지만 크롬에서는 작동하지만 firefox는'svgString' 변수를 파싱하지 않는다. 업데이트 : encodeURIComponent (svgString) – arunkjn