ImageData: свойство data
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в Web Workers.
Только для чтения ImageData.data свойство возвращает Uint8ClampedArray, который содержит данные пикселей объекта ImageData. Данные хранятся в одномерном массиве в порядке RGBA, со значениями целых чисел между 0 и 255 (включительно).
Значение
Примеры
Получение данных пикселей объекта ImageData
В этом примере создается объект ImageData, который имеет ширину 100 пикселей и высоту 100 пикселей, что составляет 10 000 пикселей в общей сложности. Массив data хранит четыре значения для каждого пикселя, что составляет 4 x 10 000 или 40 000 значений в общей сложности.
let imageData = new ImageData(100, 100); console.log(imageData.data); // Uint8ClampedArray[40000] console.log(imageData.data.length); // 40000
Заполнение пустого объекта ImageData
В этом примере создается и заполняется новый объект ImageData цветными пикселями.
HTML
<canvas id="canvas"></canvas>
JavaScript
Поскольку каждый пиксель состоит из четырех значений в массиве data, цикл for повторяется кратно четырем. Значения, связанные с каждым пикселем, — R (красный), G (зелёный), B (синий) и A (альфа), в этом порядке.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const imageData = ctx.createImageData(100, 100);
// Fill the array with RGBA values
for (let i = 0; i < imageData.data.length; i += 4) {
// Percentage in the x direction, times 255
let x = ((i % 400) / 400) * 255;
// Percentage in the y direction, times 255
let y = (Math.ceil(i / 400) / 100) * 255;
// Modify pixel data
imageData.data[i + 0] = x; // R value
imageData.data[i + 1] = y; // G value
imageData.data[i + 2] = 255 - x; // B value
imageData.data[i + 3] = 255; // A value
}
// Draw image data to the canvas
ctx.putImageData(imageData, 20, 20);
Результат
Дополнительные примеры
Для получения дополнительных примеров с использованием ImageData.data, см. Обработка пикселей с помощью холста, CanvasRenderingContext2D.createImageData() и CanvasRenderingContext2D.putImageData().
Спецификации
| Спецификация |
|---|
| HTML # dom-imagedata-data-dev |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
data |
1 | 12 | 3.5 | 9 | 3.1 | 18 | 4 | 10.1 | 2 | 1.0 | ≤37 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ImageData/data