这是一个示例 HTML 文件,显示了输出相关数据的各种不同方法。我已经展示了如何从隐藏的画布中获取数据,但您可以轻松地从实例化的画布元素或它们的数组中获取数据。我已经展示了如何将画布数据复制到另一个画布、图像、新窗口/选项卡和控制台:
<!DOCTYPE html>
<html>
<head>
<title>Canvas Test</title>
<meta charset="UTF-8">
<script>
var canvas;
var canvasHidden;
var img;
var ctxHidden;
var ctx;
function init() {
console.log('init');
canvasHidden = document.getElementById('canvasHidden');
canvas = document.getElementById('canvas');
img = document.getElementById('img');
ctxHidden = canvasHidden.getContext('2d');
var imgToLoad = new Image();
imgToLoad.onload = function(event) {
ctxHidden.drawImage(event.target, 0, 0, canvasHidden.width, canvasHidden.height);
};
imgToLoad.src = "Example.jpg";
canvas.width = canvasHidden.width;
canvas.height = canvasHidden.height;
ctx = canvas.getContext('2d');
}
function toCanvas() {
ctx.putImageData(ctxHidden.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height), 0, 0);
}
function toImage() {
img.src = canvasHidden.toDataURL();
}
function toTab() {
window.open(canvasHidden.toDataURL());
}
// Warning: this can take quite some time depending on the size of your image.
// You may wish to only show limited pixel data, depending on your needs.
function toConsole() {
// Show all data on the console...
var data1 = ctxHidden.getImageData(0, 0, canvasHidden.width, canvasHidden.height).data;
console.log(data1);
// Or just a single pixel (can easily be amended to display a small range of pixels instead)...
var x = 32;
var y = 25;
var data2 = ctxHidden.getImageData(x, y, 1, 1).data;
for (var i = 0; i < data2.length; i += 4) {
console.log('Pixel data at [' + x + ', ' + y + ']:', data2[i], data2[i + 1], data2[i + 2], data2[i + 3]);
}
}
window.onload = init;
</script>
</head>
<body>
<canvas id="canvasHidden" style="display:none;"></canvas>
<canvas id="canvas"></canvas>
<img id="img" src="" alt="Will receive image data">
<br>
<button onclick="toCanvas();">To Canvas</button>
<button onclick="toImage();">To Image</button>
<button onclick="toTab();">To Tab</button>
<button onclick="toConsole();">To Console</button>
</body>
</html>
这里有关于 getImageData 的信息:http://www.w3schools.com/tags/canvas_getimagedata.asp
关于 toDataURL 的信息在这里:https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL