HTML холст createImageData() Метод
Пример
Создайте объект ImageData 100*100 пикселей, где каждый пиксель будет красным, и поместите его на холст:
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() | Да | 9.0 | Да | Да | Да |
Определение и использование
Метод createImageData() создает новый пустой объект ImageData. Значения пикселов нового объекта по умолчанию являются прозрачно-черными.
Для каждого пикселя в объекте ImageData есть четыре части информации, RGBA значения:
R - Красный цвет (от 0-255)
G - Зеленый цвет (от 0-255)
B - Синий цвет (от 0-255)
A - Альфа-канал (от 0-255; 0 является прозрачным и 255 является полностью видимым)
So, transparent black indicates: (0,0,0,0).
Информация о цвете/альфа-канале хранится в массиве, и поскольку массив содержит 4 части информации для каждого пикселя, массив'Размер s в 4 раза превышает размер объекта ImageData: ширина * высота * 4. (более простой способ найти размер массива, это использовать ImageDataObject.data.length)
The array containing the color/alpha information is stored in the Свойство Data объекта 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=context.createImageData(width,height); |
---|
2. при этом создается новый объект ImageData с теми же размерами, что и объект, заданный anotherImageData (это не копирует данные изображения):
Синтаксис JavaScript: | var imgData=context.createImageData(imageData); |
---|
❮ HTML Справка на полотно