toDataURL 메서드를 사용하여 이미지가 포함 된 캔버스를 저장하는 방법은 무엇입니까? 텍스트와 그림은 모두 잘 작동하지만 이미지 처리 방법을 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다. 다음과 같이 감사이미지가 포함 된 HTML5 캔버스 저장
나는 내 질문을 수정 한 :
이미지가 .PNG에서 직접 뽑아 될 때 작동합니다. 그러나 Google Charts API를 호출하면 이미지가 캔버스에서 올바르게 렌더링 되더라도 toDataURL이 작동하지 않습니다. Google Charts는 .png를 반환합니다. 누구든지 아이디어가 있습니까? 감사.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8">
function test() {
var c = document.getElementById("drawing-canvas");
var cxt = c.getContext("2d");
// This doesn't work.
//var imgsrc = 'http://chart.apis.google.com/chart?cht=tx&chf=bg,s,ffffff&chco=000000&
chl=a';
// This works
var imgsrc = 'chart.png';
var img = new Image();
img.src = imgsrc;
cxt.drawImage(img,0,0);
}
function wr() {
var cc = document.getElementById("drawing-canvas");
var url = cc.toDataURL();
var newImg = document.createElement("img");
newImg.src = url;
document.body.appendChild(newImg);
}
</script>
</head>
<body onload = "test();">
<canvas id="drawing-canvas" width = "500px" height = "500px" style="background-color:
#ffffff; border: 2px solid #000000;">
Your browser does not support the canvas element.
</canvas>
<input type = "button" value = "go" onclick = "wr();">
</body>
</html>
캔버스에서 drawImage를 사용할 때 원본이 .png이면 정상적으로 작동합니다. Google Charts API에서 가져온 이미지를 사용할 때 캔버스에서 올바르게 렌더링되지만 toDataURL을 사용하여 저장할 수는 없습니다. – user1884367
예, 서버에 이미지를 저장할 때 감사합니다. 캐싱에 문제가 있습니다. 나는 시도했다 img.src = "chart.png '+'? ' + Math.random(); 그러나 drawImage (img, x, y)는 어떤 이유로 작동하지 않습니다. 그러나 img.src = 'chart.png? 12345'를 구성하면 작동하지 않습니다. – user1884367