[已解决]-Creator中如何将二进制数据加载到Texture2D

如题,Web项目需要读取zip包中的图片,目前能获取zip中的图片数据,就是不知道如何转换成Texture2D,求大神支援。
:3::3::3::3::3::3:

已解决的话,最好把怎么解决的贴出来,否则的话,这个帖子没有意义,我保留删帖子的权利。。。

1赞

怎么做的

1赞

Web项目就把图解压出来然后新建一个Image对象,把图片转成base64赋值给Image.src,然后引擎有个方法是通过Image生成SpriteFrame,大概就是这样的

有必要这么藏拙吗,贴出代码看看呀

真心求教

var imgElement = new Image();
imgElement.src = “”;//这里填流数据
var sprite = new cc.Texture2D();
sprite.initWithElement(imgElement);
sprite.handleLoadedTexture();
var spriteFrame = new cc.SpriteFrame(sprite);
iconSpr.spriteFrame = spriteFrame;//iconSpr是要设置图片的目标sprite

这样应该可以

设置 spriteFrame 的操作放在 image.onload 回调里更稳妥一点

mark

请问在原生场景如何处理?

大佬解决了吗,我也遇到原生场景的问题了

let buffer = Uint8Array.from([r, g, b, a]);

        let spriteFrame = new cc.SpriteFrame();

        //默认一张白色纹理

        let tex = new cc.Texture2D();

        // /包含 RGBA 四通道的 32 位整形像素格式:RGBA8888。 一字节8位

        tex.reset({ width: 1, height: 1, format: cc.Texture2D.PixelFormat.RGBA8888, mipmapLevel: 0 });

        tex.uploadData(buffer, 0, 0);

        // 更新 0 级 Mipmap。

        tex.updateImage();

        spriteFrame.texture = tex;

1赞

可用,感谢大佬!!