1. 程式人生 > >如何使用js將canvas儲存為圖片檔案,並且可以自定義檔名

如何使用js將canvas儲存為圖片檔案,並且可以自定義檔名

1、從canvas中直接提取圖片元資料

// 圖片匯出為 png 格式 var type = 'png'; var imgData = canvas.toDataURL(type);

上面的程式碼得到的資料格式為:data:image/png;base64,.....

2、將mime-type改為image/octet-stream,強制讓瀏覽器直接download

/** * 獲取mimeType * @param  {String} type the old mime-type * @return the new mime-type */
var _fixType = function(type) { type = type.toLowerCase().replace(/jpg/i, 'jpeg'); var r = type.match(/png|jpeg|bmp|gif/)[0]; return 'image/' + r; }; // 加工image data,替換mime type imgData = imgData.replace(_fixType(type),'image/octet-stream');

上面這個程式碼得到的資料格式為:data:image/octet-stream;base64,.....

3、圖片download到本地

/** * 在本地進行檔案儲存 * @param  {String} data     要儲存到本地的圖片資料 * @param  {String} filename 檔名 */ var saveFile = function(data, filename){ var save_link = document.createElementNS('http://www.w3.org/1999/xhtml''a'); save_link.href = data; save_link.download = filename; var
 event = document.createEvent('MouseEvents'); event.initMouseEvent('click'truefalse, window, 0, 0, 0, 0, 0, falsefalsefalsefalse, 0, null); save_link.dispatchEvent(event); }; // 下載後的問題名 var filename = 'baidufe_' + (new Date()).getTime() + '.' + type; // download saveFile(imgData,filename);