Ahi*_*una 12 html5 canvas image getimagedata
我想知道是否有一种方法可以动态修改/访问html图像中包含的数据,就好像它们是html5 canvas元素一样.使用canvas,你可以在javascript中使用getImageData()和putImageData()访问原始像素数据,但到目前为止我还没有弄清楚如何用图像来做这件事.
Phr*_*ogz 16
// 1) Create a canvas, either on the page or simply in code
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
// 2) Copy your image data into the canvas
var myImgElement = document.getElementById('foo');
ctx.drawImage( myImgElement, 0, 0 );
// 3) Read your image data
var w = myImgElement.width, h=myImgElement.height;
var imgdata = ctx.getImageData(0,0,w,h);
var rgba = imgdata.data;
// 4) Read or manipulate the rgba as you wish
for (var px=0,ct=w*h*4;px<ct;px+=4){
var r = rgba[px ];
var g = rgba[px+1];
var b = rgba[px+2];
var a = rgba[px+3];
}
// 5) Update the context with newly-modified data
ctx.putImageData(imgdata,0,0);
// 6) Draw the image data elsewhere, if you wish
someOtherContext.drawImage( ctx.canvas, 0, 0 );
Run Code Online (Sandbox Code Playgroud)
请注意,步骤2也可以从直接加载到脚本中的图像中引入,而不是在页面上:
// 2b) Load an image from which to get data
var img = new Image;
img.onload = function(){
ctx.drawImage( img, 0, 0 );
// ...and then steps 3 and on
};
img.src = "/images/foo.png"; // set this *after* onload
Run Code Online (Sandbox Code Playgroud)
您可以使用drawImage()将图像绘制到canvas元素,然后从画布中获取像素数据.
| 归档时间: |
|
| 查看次数: |
19388 次 |
| 最近记录: |