WebGL текстура

Пытаюсь загрузить текстуру в WebGL.

const image = new Image();
image.onload = () => {
    console.log(image.width, image.height); //256, 256
    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, image.width, image.height, 0,
        gl.RGBA, gl.UNSIGNED_BYTE, image);
}
image.src = "/xxx.png";

Ругается, что ему нужен ArrayBufferView. А как преобразовать картинку в Uint8Array я чего-то не нахожу :thinking:
Точнее, нахожу способы только через канвас :man_shrugging:

Нашёл вот такую перегрузку:

   gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);

Так работает. Видимо, оно само конвертирует во что ему надо и размер подставляет.
Только прозрачности нет. Наверное, что-то недовызвал.