UNPKG

3.56 kBSource Map (JSON)View Raw
1{"version":3,"file":"getImageInfo.js","sources":["../../../../src/api/media/image/getImageInfo.ts"],"sourcesContent":["import Taro from '@tarojs/api'\r\n\r\nimport { shouldBeObject } from '../../../utils'\r\nimport { MethodHandler } from '../../../utils/handler'\r\n\r\n/**\r\n * 获取图片信息。网络图片需先配置download域名才能生效。\r\n */\r\nexport const getImageInfo: typeof Taro.getImageInfo = (options) => {\r\n // options must be an Object\r\n const isObject = shouldBeObject(options)\r\n if (!isObject.flag) {\r\n const res = { errMsg: `getImageInfo:fail ${isObject.msg}` }\r\n console.error(res.errMsg)\r\n return Promise.reject(res)\r\n }\r\n\r\n const getBase64Image = (image: HTMLImageElement) => {\r\n try {\r\n const canvas = document.createElement('canvas')\r\n canvas.width = image.width\r\n canvas.height = image.height\r\n const ctx = canvas.getContext('2d')\r\n ctx?.drawImage(image, 0, 0, image.width, image.height)\r\n return canvas.toDataURL('image/png')\r\n } catch (e) {\r\n console.error('getImageInfo:get base64 fail', e)\r\n }\r\n }\r\n\r\n const { src, success, fail, complete } = options\r\n const handle = new MethodHandler({ name: 'getImageInfo', success, fail, complete })\r\n return new Promise((resolve, reject) => {\r\n const image = new Image()\r\n image.crossOrigin = ''\r\n image.onload = () => {\r\n handle.success({\r\n width: image.naturalWidth,\r\n height: image.naturalHeight,\r\n path: getBase64Image(image) || src\r\n }, { resolve, reject })\r\n }\r\n image.onerror = (e: any) => {\r\n handle.fail({\r\n errMsg: e.message\r\n }, { resolve, reject })\r\n }\r\n image.src = src\r\n })\r\n}\r\n"],"names":[],"mappings":";;;AAKA;;AAEG;AACU,MAAA,YAAY,GAA6B,CAAC,OAAO,KAAI;;AAEhE,IAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;AACxC,IAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAClB,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,CAAqB,kBAAA,EAAA,QAAQ,CAAC,GAAG,CAAE,CAAA,EAAE,CAAA;AAC3D,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACzB,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC3B,KAAA;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,KAAuB,KAAI;QACjD,IAAI;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC/C,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;AAC1B,YAAA,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACnC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AACtD,YAAA,OAAO,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;AACrC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;AACjD,SAAA;AACH,KAAC,CAAA;IAED,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;AAChD,IAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;AACzB,QAAA,KAAK,CAAC,WAAW,GAAG,EAAE,CAAA;AACtB,QAAA,KAAK,CAAC,MAAM,GAAG,MAAK;YAClB,MAAM,CAAC,OAAO,CAAC;gBACb,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,MAAM,EAAE,KAAK,CAAC,aAAa;AAC3B,gBAAA,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG;AACnC,aAAA,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACzB,SAAC,CAAA;AACD,QAAA,KAAK,CAAC,OAAO,GAAG,CAAC,CAAM,KAAI;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,CAAC,CAAC,OAAO;AAClB,aAAA,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACzB,SAAC,CAAA;AACD,QAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;AACjB,KAAC,CAAC,CAAA;AACJ;;;;"}
\No newline at end of file