Fib*_*con 12 javascript html5 canvas image
我在HTML5中有一个画布,最终可能会成为一个非常长的dataURL(如果他们尝试导航到chrome,则足以崩溃).因此,我正在尝试使用JSZip将图像保存为zip.我尝试了以下两件事:
var zip = new JSZip();
var savable = new Image();
savable.src = canvas.toDataURL();
zip.file("image.png", savable, {base64: true});
var content = zip.generate();
var blobLink = document.getElementById('blob');
blobLink.download = "image.zip";
blobLink.href = window.URL.createObjectURL(zip.generate({type:"blob"}));
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
Uncaught TypeError: Object #<HTMLImageElement> has no method 'replace'
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
var zip = new JSZip();
zip.file("image.png", canvas.toDataURL(), {base64: true});
var content = zip.generate();
var blobLink = document.getElementById('blob');
blobLink.download = "image.zip";
blobLink.href = window.URL.createObjectURL(zip.generate({type:"blob"}));
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但是zip中的图像无效.我该怎么做才能正确保存图像?
Mus*_*usa 17
你正在生成一个数据uri,它在实际的base64数据之前有schema,mime-type等data:[<MIME-type>][;charset=<encoding>][;base64],<data>.您必须在数据之前删除所有内容然后使用它.
zip.file("image.png", savable.src.substr(savable.src.indexOf(',')+1), {base64: true});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4215 次 |
| 最近记录: |