MDN's method을 사용하여 HTML 요소의 데이터를 추가 한 캔바스에서 이미지 데이터를 가져 오려고합니다. 나는 HTML 데이터를 삽입 한 후, 난 더 이상 (크롬)하지만 캔버스 '이미지 데이터에 액세스 할 수 없습니다 :CORS 제한없이 캔버스에 HTML 삽입
//This function is a direct copy of https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Drawing_DOM_objects_into_a_canvas#JavaScript
onload = function() {
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var data = '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">' +
'<foreignObject width="100%" height="100%">' +
'<div xmlns="http://www.w3.org/1999/xhtml" style="font-size:14px">' +
'example' +
'</div>' +
'</foreignObject>' +
'</svg>';
var DOMURL = window.URL || window.webkitURL || window;
var img = new Image();
var svg = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});
var url = DOMURL.createObjectURL(svg);
img.onload = function() {
ctx.drawImage(img, 0, 0);
DOMURL.revokeObjectURL(url);
getData(ctx);
};
img.src = url;
};
//the part where it goes wrong:
function getData(ctx) {
try {
ctx.getImageData(0,0,100,100);
} catch(e) {
alert(e);
}
}
<canvas id="canvas"></canvas>
내 질문 : 그것은 가능하다 HTML 데이터를 삽입, 여전히 이미지 데이터에 액세스 할 수 있습니까?
좋아,하지만이 없다? 캔버스에 svg 데이터를 추가하는 것은 foreignobject를 포함하지 않는 한 제대로 작동하므로 html을 삽입하고 이미지 데이터에 액세스하는 다른 방법이 없습니까? – Joeytje50
일반적인 해결 방법을 추가했습니다. – markE
그때 나는 그걸 처리해야 할 것 같네요. 차라리 서버 측 처리는 피하고 싶지만 이것이 유일한 방법이라면 선택의 여지가 없다고 생각합니다. – Joeytje50