HTML canvas putImageData() 方法

由网友 大卫 发布 阅读 8

HTML canvas putImageData() 方法

putImageData() 是 Canvas 2D API 将数据从已有的 ImageData 对象绘制到位图的方法。 如果提供了一个绘制过的矩形,则只绘制该矩形的像素。此方法不受画布转换矩阵的影响。

HTML canvas 参考手册

在线示例

下面的代码使用getImageData()复制画布上指定矩形的像素数据,然后使用putImageData()将图像数据放回画布上:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML canvas getImageData()方法使用-大卫编程网(div.cn)</title>
</head>
<body>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5 canvas 标签。
</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(10,10,50,50);
function copy()
{
    var imgData=ctx.getImageData(10,10,50,50);
    ctx.putImageData(imgData,10,70);
}
</script>
<button onclick="copy()">复制</button>
</body>
</html>
测试看看 ‹/›

浏览器兼容性

IEFirefoxOperaChromeSafari

Internet Explorer 9、Firefox、Opera、Chrome 和 Safari 支持 putImageData() 方法。

注意:Internet Explorer 8 及之前的版本不支持 <canvas> 元素。

定义和用法

putImageData() 方法将图像数据(来自指定的ImageData对象)放回到画布上。

提示:请参阅 getImageData() 方法,它可复制画布上指定的矩形的像素数据。

提示:请参阅 createImageData() 方法,它可创建新的空白 ImageData 对象。

JavaScript 语法

JavaScript 语法:context.putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight);

参数值

参数描述
imgData规定要放回画布的 ImageData 对象。
xImageData 对象左上角的 x 坐标,以像素计。
yImageData 对象左上角的 y 坐标,以像素计。
dirtyX可选。水平值(x),以像素计,在画布上放置图像的位置。
dirtyY可选。垂直值(y),以像素计,在画布上放置图像的位置。
dirtyWidth可选。在画布上绘制图像所使用的宽度。
dirtyHeight可选。在画布上绘制图像所使用的高度。
 HTML canvas 参考手册

HTML canvas globalAlpha 属性 HTML canvas getImageData() 方法