Create a 100*100 pixels ImageData object where every pixel is red, and put it onto the canvas:
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="300" height="180" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); var imgData = ctx.createImageData(100, 100); var i;// w w w. j ava 2 s .com for (i = 0; i < imgData.data.length; i += 4) { imgData.data[i+0] = 255; imgData.data[i+1] = 0; imgData.data[i+2] = 0; imgData.data[i+3] = 255; } ctx.putImageData(imgData, 10, 10); </script> </body> </html>
The createImageData()
method creates a new, blank ImageData object.
The new object's pixel values are transparent black by default.
For every pixel in an ImageData object there are four pieces of information, the RGBA values:
Item | Value |
---|---|
R | The color red (from 0-255) |
G | The color green (from 0-255) |
B | The color blue (from 0-255) |
A | The alpha channel (from 0-255; 0 is transparent and 255 is fully visible) |
Transparent black indicates: (0, 0, 0, 0).
The color/alpha information is held in an array.
The array contains 4 pieces of information for every pixel, the array's size is 4 times the size of the ImageData object: widthheight
4.
You can find the size of the array by using ImageDataObject.data.length.
The color is stored in the data property of the ImageData object.
You can copy the image data back onto the canvas with the putImageData()
method.
There are two versions of the createImageData()
method:
The following creates a new ImageData object with the specified dimensions in pixels:
var imgData = context.createImageData(width, height);
The second one creates a new ImageData object with the same dimensions as the object specified by anotherImageData
and this does not copy the image data:
var imgData = context.createImageData(imageData);
Parameter Values
Parameter | Description |
---|---|
width | The width of the new ImageData object, in pixels |
height | The height of the new ImageData object, in pixels |
imageData | another ImageData object |