当从DOM图像加载WebGL纹理时,如何确定它是否具有Alpha通道?

问题描述 投票:0回答:1

当您直接从DOM图像中加载WebGL纹理时,如何判断该图像是否具有Alpha通道?无论如何,除了根据文件名猜测外(例如“包含.PNG可能是RGBA,否则是RGB”)。 DOM图像中有一个宽度和高度,但是我什么都看不到,它是什么格式。即:]]

    const img = await loadDOMImage(url);
    const format = gl.RGBA; //Does this always need to be RGBA? I'm wasting space in most cases where its only RGB
    const internalFormat = gl.RGBA;
    const type = gl.UNSIGNED_BYTE; //This is guaranteed to be correct, right?  No HDR formats supported by the DOM?
    gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, format, type, img); 

我的加载函数看起来像这样的FWIW:

  async loadDOMImage(url) {
         return new Promise(
           (resolve, reject)=>{
             const img = new Image(); 
             img.crossOrigin = 'anonymous';
             img.addEventListener('load', function() {
               resolve(img);
             }, false);
             img.addEventListener('error', function(err) {
               reject(err);
             }, false);

             img.src = uri;

           }
         );
       }

当您直接从DOM图像中加载WebGL纹理时,如何判断该图像是否具有Alpha通道?无论如何,除了根据文件名猜测外(例如,“包含.PNG可能是...

javascript dom webgl
1个回答
0
投票

您如何判断图像是否具有Alpha通道?

© www.soinside.com 2019 - 2024. All rights reserved.