【发布时间】:2014-08-22 05:31:16
【问题描述】:
我正在尝试使用 FileSaver.js (https://github.com/eligrey/FileSaver.js/)
当我保存 jpg 类型的图像时,Firefox 中显示的另存为对话框在另存为类型下拉列表中给出了不正确的值(它显示“PNG 图像(.jpg),但我期望的是 JPEG 图像(.jpg))。
谁能告诉我如何解决这个问题?
【问题讨论】:
标签: javascript firefox jpeg
我正在尝试使用 FileSaver.js (https://github.com/eligrey/FileSaver.js/)
当我保存 jpg 类型的图像时,Firefox 中显示的另存为对话框在另存为类型下拉列表中给出了不正确的值(它显示“PNG 图像(.jpg),但我期望的是 JPEG 图像(.jpg))。
谁能告诉我如何解决这个问题?
【问题讨论】:
标签: javascript firefox jpeg
终于找到了这个问题的原因。
我使用 canvas-toblob javascript 库将画布转换为 blob。但是 Firefox 有 toblob 方法的内部实现,所以 canvas-toblob.js 中的相同方法永远不会被调用。
我修改了 canvas-toblob.js 以便 Firefox 使用这个库中的方法。这解决了我的问题
if (HTMLCanvasElement) {
canvas_proto.toBlob = function(callback, type /*, ...args*/) {
if (!type) {
type = "image/png";
} if (this.msToBlob && /^\s*image\/png\s*(?:$|;)/i.test(type)) {
callback(this.msToBlob());
return;
}
【讨论】:
type参数需要指定image/jpeg。
【讨论】: