putImageData() 是 Canvas 2D API 將數(shù)據(jù)從已有的 ImageData 對象繪制到位圖的方法。 如果提供了一個繪制過的矩形,則只繪制該矩形的像素。此方法不受畫布轉(zhuǎn)換矩陣的影響。
下面的代碼使用getImageData()復(fù)制畫布上指定矩形的像素數(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()">復(fù)制</button> </body> </html>測試看看 ?/?
IEFirefoxOperaChromeSafari
Internet Explorer 9、Firefox、Opera、Chrome 和 Safari 支持 putImageData() 方法。
注意:Internet Explorer 8 及之前的版本不支持 <canvas> 元素。
putImageData() 方法將圖像數(shù)據(jù)(來自指定的ImageData對象)放回到畫布上。
提示:請參閱 getImageData() 方法,它可復(fù)制畫布上指定的矩形的像素數(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 | 可選。在畫布上繪制圖像所使用的高度。 |