wux-weapp
Version:
一套组件化、可复用、易扩展的微信小程序 UI 组件库
1 lines • 1.82 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCanvasRef=getCanvasRef,exports.createImage=createImage,exports.toDataURL=toDataURL,exports.downloadImage=downloadImage;var _global=require("../internals/global"),_useNativeAPI=require("./useNativeAPI"),_useDOM=require("./useDOM");function getCanvasRef(e,t){return(0,_useDOM.useRef)("#".concat(e),t).then(function(e){return e?e.node:Promise.reject({errMsg:"Canvas is not supported in the current environment."})})}function createImage(e,o){var r=e.imageWidth,s=e.imageHeight,u=e.imageUrl;return new Promise(function(e,t){if("function"==typeof o.createImage){var a=(0,_useNativeAPI.getSystemInfoSync)(["window"]).pixelRatio,n=o.getContext("2d"),i=o.createImage();i.onload=function(){n.drawImage(i,-r*a/2,-s*a/2,r*a,s*a),e(u)},i.onerror=function(){t({errMsg:"Image creation failed in canvas.createImage."})},i.src=u}else t({errMsg:"Canvas.createImage is not a function."})})}function toDataURL(e,i){var o=e.width,r=e.height,t=e.type,s=void 0===t?"png":t,a=e.quality,u=void 0===a?1:a;return new Promise(function(t){if("function"==typeof i.toDataURL){var e="jpg"===s||"jpeg"===s?"jpeg":s;t(i.toDataURL("image/".concat(e),u))}else if("function"==typeof _global.miniprogramThis.canvasToTempFilePath){var a=(0,_useNativeAPI.getSystemInfoSync)(["window"]).pixelRatio,n="jpg"===s||"jpeg"===s?"jpg":"png";_global.miniprogramThis.canvasToTempFilePath({destWidth:o*a,destHeight:r*a,canvas:i,fileType:n,quality:u,success:function(e){return t(e.tempFilePath)},fail:function(){return t("")}})}else t("")})}function downloadImage(e){return new Promise(function(t,a){/^http/.test(e)&&!/^http:\/\/tmp/.test(e)?_global.miniprogramThis.downloadFile({url:e,success:function(e){200===e.statusCode?t(e.tempFilePath):a({errMsg:e.errMsg})},fail:function(e){a(e)}}):t(e)})}