即使我指定了 JPG,Canvas.toBlob() 仍保存为 PNG

Eri*_*ert 2 png jpeg blob canvas save

我正在使用此函数保存画布:

c.toBlob(function(blob) {
    saveAs(blob, '@Model.DatabaseName' + '.jpg');
}, 'image/jpg'); 
Run Code Online (Sandbox Code Playgroud)

扩展名是.jpg,我将文件类型指定为.jpg。当我在 Windows 资源管理器中查看该文件时,它说文件类型是 jpg,但是当我尝试在 Photoshop 中打开它时,它会抛出错误,因为它认为该文件是 png。我使用 FastStone 图像查看器确认文件类型为 png。为什么不能正确保存?

mar*_*rkE 5

编码类型应该是: image/jpeg

请注意,并非所有浏览器都支持 canvas.toBlob,因为它正在被重新设计以更好地考虑安全问题。在 .toBlob 得到广泛支持之前,您可以尝试 Eli Grey 的不错的 polyfill,FileSaver.js: https: //github.com/eligrey/FileSaver.js