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

标签 canvas save png blob jpeg

我正在使用此功能保存我的 Canvas :

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

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

最佳答案

编码类型应该是:image/jpeg

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

关于Canvas.toBlob() 保存为 PNG,即使我指定了 JPG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826213/

相关文章:

matlab - 使用特定文件名保存矩阵 matlab

image - 缩放后 PNG 图像看起来很模糊

php - 如何将图像保存到从 iOS 应用程序接收到的文件中,PHP 编码为十六进制?

javascript - 取消html5浏览器中的单图请求

javascript - 使用 .pop() 值生成新数组

swift - 如何在照片库 Swift 中保存图片?

c++ - CImg 没有正确显示透明的 png 图像?

javascript - 我无法从 Canvas 获取 Base64 字符串

java - 安卓绘图程序

java - 将 java 应用程序数据冗余存储在文件中的最佳方法是什么?