HTML-холст Метод createImageData()

❮ Справочник по холсту HTML

Пример

Создайте объект ImageData размером 100*100 пикселей, где каждый пиксель красный, и поместите его на холст:

Ваш браузер не поддерживает HTML5canvastag.

JavaScript:

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var imgData = ctx.createImageData(100, 100);
var i;
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);

Поддержка браузера

Цифры в таблице указывают на первую версию браузера, полностью поддерживающую метод.

Method
createImageData() Yes 9.0 Yes Yes Yes


Определение и использование

Метод createImageData() создает новый пустой объект ImageData. По умолчанию значения пикселей нового объекта прозрачно-черные.

Для каждого пикселя в объекте ImageData есть четыре части информации, значения RGBA:

R — красный цвет (от 0 до 255)
G — зеленый цвет (от 0 до 255)
B — синий цвет (от 0 до 255)
A — альфа-канал (от 0 до 255; 0 — прозрачный, 255 — полностью видно)

Итак, прозрачный черный цвет означает: (0,0,0,0).

Информация о цвете/альфа-канале хранится в массиве, и, поскольку массив содержит 4 фрагмента информации для каждого пикселя, размер массива в 4 раза превышает размер объекта ImageData: ширина*высота*4. (более простой способ узнать размер массива — использовать ImageDataObject.data.length)

Массив, содержащий информацию о цвете/альфа-канале, хранится в свойстве данных объекта ImageData.

Совет: после того, как вы изменили информацию о цвете/альфа-канале в массиве, вы можете скопировать данные изображения обратно на холст с помощью метода putImageData() .

Примеры:

Синтаксис для того, чтобы сделать первый пиксель в объекте ImageData красным:

imgData=ctx.createImageData(100,100);

imgData.data[0]=255;
imgData.data[1]=0;
imgData.data[2]=0;
imgData.data[3]=255;

Синтаксис для того, чтобы сделать второй пиксель в объекте ImageData зеленым:

imgData=ctx.createImageData(100,100);

imgData.data[4]=0;
imgData.data[5]=255;
imgData.data[6]=0;
imgData.data[7]=255;

Синтаксис JavaScript

Существует две версии метода createImageData():

1. Это создает новый объект ImageData с указанными размерами (в пикселях):

Синтаксис JavaScript: var imgData = контекст .createImageData ( ширина, высота );

2. Это создает новый объект ImageData с теми же размерами, что и объект, указанный в otherImageData (при этом данные изображения не копируются):

JavaScript syntax: var imgData=context.createImageData(imageData);

Значения параметров

Parameter Description
width The width of the new ImageData object, in pixels
height The height of the new ImageData object, in pixels
imageData anotherImageData object

❮ Справочник по холсту HTML