自己做了一些尝试:
- 通过cc.loader.loadRes后获得的纹理对象(cc.Texture2D)是没有办法取得图片的内存数据的。
- Image对象加载后,直接通过gl.texImage2D函数生成webgl的纹理对象了。
- 我利用cc.RenderTexture的功能来间接获取,于是有下面测试代码:
----cc.loader.loadRes(“test”, cc.Texture2D, (err: Error, res: cc.Texture2D) => {
--------let rt = new cc.RenderTexture();
--------rt.initWithSize(res.width, res.height);
--------rt.drawTextureAt(res, 0, 0);
--------let data = rt.readPixels();
----}
然后会获得这样一个错误:
**[.WebGL-0C81AAC0]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : **
glReadPixels: framebuffer incomplete
返回的data里面全是0,没能正确读取到纹理数据。
求助:
如何才能在内存中构造出一个图片的RGBA格式的数据(Uint8Array)