putImageData() 是 Canvas 2D API 將數(shù)據(jù)從已有的 ImageData 對象繪制到位圖的方法。 如果提供了一個繪制過的矩形,則只繪制該矩形的像素。此方法不受畫布轉(zhuǎn)換矩陣的影響。
下面的代碼使用getImageData()復制畫布上指定矩形的像素數(shù)據(jù),然后使用putImageData()將圖像數(shù)據(jù)放回畫布上:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML canvas getImageData()方法使用-菜鳥教程(cainiaoplus.com)</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() 方法將圖像數(shù)據(jù)(來自指定的ImageData對象)放回到畫布上。
提示:請參閱 getImageData() 方法,它可復制畫布上指定的矩形的像素數(shù)據(jù)。
提示:請參閱 createImageData() 方法,它可創(chuàng)建新的空白 ImageData 對象。
| JavaScript 語法: | context.putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight); |
|---|
| 參數(shù) | 描述 |
|---|---|
| imgData | 規(guī)定要放回畫布的 ImageData 對象。 |
| x | ImageData 對象左上角的 x 坐標,以像素計。 |
| y | ImageData 對象左上角的 y 坐標,以像素計。 |
| dirtyX | 可選。水平值(x),以像素計,在畫布上放置圖像的位置。 |
| dirtyY | 可選。垂直值(y),以像素計,在畫布上放置圖像的位置。 |
| dirtyWidth | 可選。在畫布上繪制圖像所使用的寬度。 |
| dirtyHeight | 可選。在畫布上繪制圖像所使用的高度。 |