문제

그래서 나는 그려진 이미지 데이터를 저장해야합니다 <canvas> 요소. 그리고 대부분의 최신 브라우저에서 작동하는 Todataurl () 메소드가 있습니다.

제외하고 ... 당신은 그것을 추측했습니다 ... 인터넷 익스플로러.

나는 인터넷을 검색했지만 어디에서나 사람들은 데이터를 저장하기 위해 SVG/VML을 사용해야한다고 말하지만 결코 언급하지 않습니다. IE에서 SVG/VML에 대한 경험이 없으므로 Internet Explorer의 캔버스 요소에 그려진 이미지를 어떻게 저장합니까? 누구든지 경험이 있습니까?

현재, 나는 복잡해지기 시작하는 클라이언트와 서버 모두에서 도면 코드를 복제해야했습니다. 따라서 클라이언트 (또는 서버) 측에서 캔버스 태그에 그려진 이미지를 추출 할 수있는 방법이 있다면 확실히 도움이됩니다.

감사!

도움이 되었습니까?

해결책

VML과 동일하게 얻을 수 있지만 XML 형식이므로 원하는 것이 아닐 수도 있습니다. 플러그인을 사용하지 않고 IE에서 이미지를 얻을 수있는 방법이 없습니다.

다른 팁

  1. Canvas.todataurl은 IE9에서 작동합니다.

  2. 당신이 정말로 옛 IE를 위해 그것을 필요로한다면 .. 글쎄 .. 나는 당신에게 견적을 줄게

Todataurl은 Explorer Canvas : VML에서 사용하는 방법의 특성 때문에 지원되지 않습니다. 우리는 서버 측 스크립트조차도 JS를 사용하여 VML을 비트 맵 이미지로 비트 맵 이미지로 래스터 화하는 방법을 찾지 못했습니다. 따라서 IE에서 Todataurl이 실제로 필요하다면 FXCanvas (http://code.google.com/p/fxcanvas/) 또는 FlashCanvas (http://flashcanvas.net/)를 사용해야합니다. .

http://code.google.com/p/explorercanvas/issues/detail?id=77

나는 같은 문제가 있었다. 내가하고 싶었던 것은 캔버스를 이미지로 변환 한 다음 새 탭에서 열었습니다. 변환하는 것이 문제가 아니라 새로운 링크를 열었습니다. 이미지를 생성하여 IMG 태그에 넣은 다음 새 페이지에 포함하여 해결했습니다. 그런 다음이 튜토리얼을 사용하여 새 페이지를 열었습니다. http://www.javascripter.net/faq/writingt.htm

여기 내가 한 일이 있습니다

var canvas = document.getElementById('canvas1');
var dataURL = canvas.toDataURL();
var width = parseInt($("#main").width()); //main is the div that contains my canvas
var height = parseInt($("#main").height());
newWindow("<img src=\"" + dataURL + "\"/>");
function newWindow(content) {
    top.consoleRef = window.open("", "Organisational Structure",
        "width="+width+",height="+height
        + ",menubar=0"
        + ",toolbar=1"
        + ",status=0"
        + ",scrollbars=1"
        + ",resizable=1")
    top.consoleRef.document.writeln(
        "<html><head><title>Console</title></head>"
        + "<body bgcolor=white onLoad=\"self.focus()\">"
        + content
        + "</body></html>"
    )
    top.consoleRef.document.close()
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top