JSZIP使用问题

resources.load( “picture”, (err, res) => {
console.log(‘load zip finish’);
JSZip.loadAsync(res._nativeAsset).then((zip: JSZip) => {
console.log(zip.files)
zip.file(“pic1.png”).async(“base64”).then((data) => {
console.log(’ read pic out ');
})
})
运行之后报错,直接吧loadAsync的第一个参数填写为‘piture.zip’也是这样。

时我的用法不正确吗

test.zip (134.8 KB)
执行:
npm i jszip-utils
npm install --save jszip

仅供参考;

1赞

感谢。昨天刚弄出来。3.4.1需要把zip文件后缀改为bin就可以了。

能否再问个问题,如何从压缩文件中读取图片并显示出来。

以前的
const texture = new Texture2D();
texture.initWithElement(img);
texture.handleLoadedTexture();
改掉了。
this.imageAsset = new ImageAsset();

this.imageAsset.reset({

width : this.drawNode.getComponent(UITransform).width,

            height : this.drawNode.getComponent(UITransform).height,

            close : null

        });

这个方式也不行,写出来的图片像素丢失。图片看不到东西。

新建了个项目,把代码/资源复制进去。报错没有了,但是也还是没显示东西,效果跟上面initWithElementyiyang l .

监听 img.onload 事件后再创建 ImageAsset 试试。

感谢,解决了。谢谢大佬的提示 :smile:

                let img = new Image();
                img.src = 'data:image/png;base64,' + data;

                img.onload = function () {
                    let imageAsset = new ImageAsset(img);

                    let tex = new Texture2D();
                    tex.image = imageAsset;

                    let sprit = new SpriteFrame();
                    sprit.texture = tex;
                    let nod = find('Canvas/Sprite')!;
                    nod.getComponent(Sprite)!.spriteFrame = sprit;
                };

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。