使用H5+實現截圖後儲存至系統相簿功能 JavaScript
阿新 • • 發佈:2019-02-13
封裝了一個H5+的截圖後儲存至系統相簿的函式
void save(successCB[,errorCB,fileName,imgID,overwrite,format,quality,clip]);
使用說明:
使用前需要等plusready事件發生後才能正常使用,否則可能會報錯。
引數說明:
引數名 | 型別 | 說明 | 預設值 | 是否必選 |
---|---|---|---|---|
successCB | Function | 成功回撥函式 | Y | |
errorCB | Function | 失敗回撥函式 | Function | |
fileName | String | 檔名 不需字尾名 | 當前時間戳 | |
imgID | String | 原生圖片ID | 當前時間戳 | |
overwrite | Boolean | 是否覆蓋 | true | |
format | String | 儲存的格式 | PNG | |
quality | Number | 儲存質量,1-100,1最低,100最高 | 50 | |
clip | Object | 指定截圖區域 | {top:’0px’,left:’0px’,width:’100%’,height:’100%’} |
程式碼
var save = function(successCB,errorCB,fileName,imgID,overwrite,format,quality,clip) {
errorCB = errorCB || function(){};
fileName = fileName || Date.parse( new Date());
imgID = imgID || String(Date.parse( new Date()));
overwrite = overwrite || true;
format = format || 'png';
quality = quality || 50 ;
clip = clip || {top:'0px',left:'0px',width:'100%',height:'100%'};
var self = plus.webview.currentWebview();
var bitmap = new plus.nativeObj.Bitmap(imgID);
//繪製截圖
self.draw(bitmap,function(){
// 儲存Bitmap圖片
bitmap.save('_doc/'+fileName+'.'+format, {overwrite: overwrite,format:format,quality:quality,clip:clip}
, function(i) {
//儲存到系統相簿
plus.gallery.save(i.target,function(d){
//銷燬Bitmap圖片
bitmap.clear();
successCB({success:'success',details:d});
}, function(e){
//銷燬Bitmap圖片
bitmap.clear();
errorCB({error:'圖片儲存至相簿失敗',details:e});
});
}, function(e) {
bitmap.clear();
errorCB({error:'圖片儲存失敗',details:e});
}
);
},function(e){
errorCB({error:'截圖繪製失敗',details:e});
});
}