【发布时间】:2013-01-18 21:28:35
【问题描述】:
我正在尝试从一个画布元素中获取像素信息,对其进行操作,然后将其绘制到另一个画布元素中。当我在同一个画布上画画时,我已经能够完成这项工作。它也可以按特定顺序工作,但不是我需要的顺序。
这个想法是让隐藏的画布保存图像信息,我可以从中提取像素,进行操作,然后绘制到主画布。这在我从 myCanvas 绘制到 myCanvas2 时有效,但反之则不行。我从中获取数据的图像不需要是画布,事实上,我希望它不是我想要的尽可能少的资源。
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<canvas id="myCanvas2" width="800" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
var image = new Image();
image.src = 'http://timsterrible.net/gaming/pixelsweeper/images/bariumStrip.png';
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(10,10,50,50);
var canRaw = document.getElementById("myCanvas2");
var canvas = canRaw.getContext("2d");
image.onload = canvas.drawImage(image, 0, 0);
function copy()
{
var imgData=ctx.getImageData(32,0,32,32);
canvas.putImageData(imgData,10,70);
}
</script>
<button onclick="copy()">Copy</button>
</body>
</html>
我的目标是在混合时将一种化学品泄漏到另一种化学品中。现在它们非常坚固,您可以通过play around here 看到。
感谢您为解决这个令人困惑的烦恼提供的任何帮助。
http://timsterrible.net/gaming/pixelsweeper/stack/notmixing.png
【问题讨论】:
-
那么您的问题到底是什么?您在寻找
globalCompositeOperation还是globalAlpha? -
globalAlpha 和 globalCompositeOperation 都是非常有用的工具。但是,我必须手动进行图像数据处理,因为这两种工具都不会从一个图像渐变到另一个图像。幸运的是,这不是问题。我遇到的问题,最终的问题是;为什么我可以从一个画布收集图像数据,而不能从另一个画布收集?
-
检查这个答案可能有用[stackoverflow][1] [1]:stackoverflow.com/questions/13873374/…
标签: javascript image-processing html5-canvas