我正在尝试使用以下代码从 png 创建纹理:
...
var texture = gl.createTexture();
var img = new Image();
img.onload = function () {
gl.activeTexture(gl.GL_TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
gl.bindTexture(gl.TEXTURE_2D, null);
}
img.src = "/path/to/image.png"
我的问题是 WebGL 抱怨“错误的图像数据”。在萤火虫中调试显示图像被截断,下载的 png 文件只是原始文件的一部分 - 上半部分。Firefox 还抱怨“图像已损坏或被截断”。原始文件约为 1.8 MB (2048x1024)。可能是什么问题,我该如何解决?