UNPKG

@slan-health/taro-vueuse

Version:

taro vue版本hooks

56 lines (55 loc) 1.56 kB
import Compressor from "../node_modules/.pnpm/compressorjs-global@1.1.2/node_modules/compressorjs-global/dist/compressor.esm.js"; const downloadImage = async (filePath) => { const responese = await fetch(filePath); const blob = await responese.blob(); return blob; }; const generateBlobUrl = (blob) => { const blobInstance = new Blob([blob], { type: "application/octet-stream" }); const href = window.URL.createObjectURL(blobInstance); return href; }; const saveImageForH5 = async (filePath) => { if (filePath) { let result = true; try { const blob = await downloadImage(filePath); const href = generateBlobUrl(blob); const downloadElement = document.createElement("a"); downloadElement.href = href; downloadElement.download = filePath.split("/").reverse()[0]; document.body.appendChild(downloadElement); downloadElement.click(); document.body.removeChild(downloadElement); window.URL.revokeObjectURL(href); } catch (e) { result = false; } return result; } return false; }; const compressForH5 = (blob, quality) => { return new Promise((resolve, reject) => { new Compressor(blob, { quality: (quality || 80) / 100, success: (res) => { const tempFilePath = generateBlobUrl(res); resolve({ tempFilePath, errMsg: "compressImage:ok" }); }, error: reject }); }); }; export { compressForH5, downloadImage, generateBlobUrl, saveImageForH5 }; //# sourceMappingURL=utils.js.map