HTML-холст Метод createImageData()
Пример
Создайте объект ImageData размером 100*100 пикселей, где каждый пиксель красный, и поместите его на холст:
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