问题描述
我正在开发一个具有 zip 多图像上传选项的项目。我通过 JSZip 打开 zip,里面有一个包含 Uint8Array 的压缩内容,但我所有将其转换为 Blob 或新图像的尝试都失败了。
我最初的计划是将 zip 中的图像转换为 canvas 元素并在其上添加水印,然后在发布到 api 之前将新图像编译为数组。所以我在这里苦苦地困了两天。
chapterUpload(e) {
let files = e.target.files[0],zip = new JSZip();
zip.loadAsync(files).then(
(zip) => {
let zipValues = Object.values(zip.files);
for (let i = 0; i < zipValues.length; i++) {
let { compressedContent } = zipValues[i]._data,blob = new Blob([compressedContent],{ type: "image/jpeg" }),url = URL.createObjectURL(blob); // throws "The image cannot be displayed because it contains errors"
this.zipImages.push(compressedContent);
}
console.log(this.zipImages); // this output right below
},() => {
alert("Please,upload a zip. (example.zip)");
}
);
},
基本上,我不知道如何将 Uint8Array 转换为正常的解压缩图像。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)