UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

135 lines (128 loc) 3.93 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _regeneratorRuntime = require('@babel/runtime/regenerator'); var tslib_es6 = require('../tslib.es6-0d92ef81.js'); var nodejs_crypto = require('../nodejs/crypto.js'); var nodejs_fs = require('../nodejs/fs.js'); var nodejs_request = require('../nodejs/request.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime); /** * node环境下,保存base64图片到文件 * @param {object} config 输入配置 * @param {string} config.imgUrl base64图片Url * @param {string} config.savePath 保存路径,最好是绝对路径 * @returns {Promise<string>} 去掉前缀的base64图片地址 * * @example * * saveBase64ImgToFile({ * imgUrl: 'xx', * savePath: '/test.png' * }).then((base64Data) => { * console.log(base64Data) * }) * */ function saveBase64ImgToFile(_ref) { var imgUrl = _ref.imgUrl, savePath = _ref.savePath; return new Promise(function (resolve, reject) { var fs = nodejs_fs.getFs(); var base64Data = imgUrl.replace(/^data:image\/\w+;base64,/, ''); var dataBuffer = Buffer.from(base64Data, 'base64'); fs.writeFile(savePath, dataBuffer, function (err) { if (err) { reject(err); } else { resolve(base64Data); } }); }); } /** * node环境下,本地图片转为base64 * @param {string} savePath 本地图片保存路径 * @returns {string} base64图片地址 * * @example * * const base64str = turnLocalImg2Base64('/temp.png') * */ function turnLocalImg2Base64(imgPath) { var fs = nodejs_fs.getFs(); var bitmap = fs.readFileSync(imgPath); // base64编码 var base64str = Buffer.from(bitmap, 'binary').toString('base64'); return base64str; } /** * node环境下,保存网络图片到本地 * @param {object} config 输入配置 * @param {string} config.imgUrl 网络图片地址 * @param {string} config.savePath 本地图片保存路径,建议绝对路径 * @returns {Promise<object>} 请求Promise * * @example * * saveRemoteImgToLocal({ * imgUrl: 'xx', * savePath: './test.png' * }).then(() => { * * }) */ function saveRemoteImgToLocal(_ref2) { var imgUrl = _ref2.imgUrl, savePath = _ref2.savePath; return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() { var fs, request; return _regeneratorRuntime__default["default"].wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: fs = nodejs_fs.getFs(); request = nodejs_request.getRequest(); _context.next = 1; return request(imgUrl).pipe(fs.createWriteStream(savePath)); case 1: return _context.abrupt("return", _context.sent); case 2: case "end": return _context.stop(); } }, _callee); })); } /** * 获取图片md5 * @param {object} options 配置信息 * @param {string} options.savePath 本地图片地址,建议绝对路径 * @returns {Promise<string>} 图片md5值 * * @example * getImgMd5({ * savePath: '/test.png' * }).then(md5 => { * console.log(md5) * }) * ``` */ function getImgMd5(_ref3) { var savePath = _ref3.savePath; var fs = nodejs_fs.getFs(); var crypto = nodejs_crypto.getCrypto(); return new Promise(function (resolve, reject) { fs.readFile(savePath, function (err, data) { if (err) { reject(); } var md5Value = crypto.createHash('md5').update(data, 'utf8').digest('hex'); resolve(md5Value); }); }); } exports.getImgMd5 = getImgMd5; exports.saveBase64ImgToFile = saveBase64ImgToFile; exports.saveRemoteImgToLocal = saveRemoteImgToLocal; exports.turnLocalImg2Base64 = turnLocalImg2Base64;