Метод Canvas createImageData()

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

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

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

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

Таким образом, полностью прозрачный черный цвет представлен как (0,0,0,0).

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

Массив информации о цвете/алфавите хранится в объекте ImageData по адресу data свойства.

Совет:После завершения работы с массивом информации о цвете/алфавите, вы можете использовать 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;

Пример

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

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

JavaScript:

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

Попробуйте сами

Синтаксис

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

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

var imgData=context.createImageData(width,height);

2. Создайте новый объект ImageData с размерами, соответствующими указанному другому объекту ImageData (не будет копироваться изображение):

var imgData=context.createImageData(imageData);

Значение параметра

Параметр Описание
width Ширина объекта ImageData, измеренная в пиках.
height Высота объекта ImageData, измеренная в пиках.
imageData Другой объект ImageData.

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

Числа в таблице указывают на первую версию браузера, которая полностью поддерживает этот атрибут.

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
4.0 9.0 3.6 4.0 10.1

Комментарий:Интернет-Explorer 8 и более ранние версии не поддерживают элемент <canvas>.