cocos creator 3.X base64转图片怎么做呢

  • Creator 版本:

  • 目标平台:

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

public static base64ToTexture(base64: string): Texture2D {

    const image = document.createElement('img');

    image.src = base64;

    const texture = new Texture2D();

    texture.initWithElement(image);   // 这里已经失效了,新版的是image ,要传入imageAsset 

    image.remove();

    return texture;

}

先把base64转成ImageAsset,再转成Texture2D

看看ImageAsset.reset这个api

let image = new Image()
image.src = base64 // base 64是string,看后端返回是二进制,是否带头data:image/png;base64, 不带要手动添加
image.onload = () => {
let texture = new Texture2D()
texture.image = new ImageAsset(image)
let _frame = new SpriteFrame()
_frame.texture = texture
// 获取节点的容器
let _node =this.node.getChildByName(‘XXXXX’)
let _sf = _node.getComponent(Sprite)
_sf.spriteFrame = _frame
}

1赞