Щоб отримати доступ до піксельних даних із текстури, нам потрібно копіювати дані з текстури після завантаження зображення. Ми можемо зробити це, якщо наша функція onLoad відтворить текстуру в a
об’єкт, а потім вилучення пікселів із буфера кадрів у байтовий масив беззнакового цілого числа.
Тоді ви можете отримати піксельні дані таким чином:
- const img = документ. querySelector('#приклад');
- const canvas = документ. createElement('canvas');
- const ctx = полотно. getContext('2d');
- полотно. ширина = рис. ширина;
- полотно. висота = малюнок. висота;
- ctx. drawImage(img, 0, 0);
- const rgba = ctx. getImageData(
- 0, 0, малюнок. ширина, рис.
Ми використаємо цей метод нижче.
- // Створення текстури.
- var texture = gl. createTexture();
- gl. bindTexture(gl. TEXTURE_2D, текстура);
- // Заповнюємо текстуру синім пікселем 1×1.
- gl. texImage2D(гл. TEXTURE_2D, 0, гл. RGBA, 1, 1, 0, гл. …
- новий Uint8Array([0, 0, 255, 255]));
- // Асинхронне завантаження зображення.
- var image = new Image();
У WebGL є текстури. Текстури найчастіше Двовимірні масиви даних, які можна передати в шейдер. У шейдері ви оголошуєте уніфікований семплер таким чином.
Отримання піксельних даних для контексту getImageData(ліворуч, зверху, ширина, висота); Цей метод повертає об’єкт ImageData, що представляє піксельні дані для області полотна, кути якої представлено точками (ліворуч, зверху), (ліворуч+ширина, зверху), (ліворуч, зверху+висота) та (ліворуч+ширина , верх+висота ).
Процедура вилучення така:
- імпортуйте модуль Image PIL в оболонку: >>>from PIL import Image.
- створіть об’єкт зображення та відкрийте зображення для режиму читання: >>>im = Image.open('myfile.png', ' r') …
- ми використовуємо функцію модуля Image під назвою getdata(), щоб отримати значення пікселів.