UNPKG

t-comm

Version:

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

124 lines (119 loc) 3.28 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../tslib.es6-01322ba9.js'); /* eslint-disable @typescript-eslint/no-require-imports */ /** * 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(_a) { var imgUrl = _a.imgUrl, savePath = _a.savePath; return new Promise(function (resolve, reject) { var fs = require('fs'); 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 = require('fs'); 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(_a) { var imgUrl = _a.imgUrl, savePath = _a.savePath; return tslib_es6.__awaiter(this, void 0, void 0, function () { var fs, request; return tslib_es6.__generator(this, function (_b) { switch (_b.label) { case 0: fs = require('fs'); request = require('request'); return [4 /*yield*/, request(imgUrl).pipe(fs.createWriteStream(savePath))]; case 1: return [2 /*return*/, _b.sent()]; } }); }); } /** * 获取图片md5 * @param {object} options 配置信息 * @param {string} options.savePath 本地图片地址,建议绝对路径 * @returns {Promise<string>} 图片md5值 * * @example * getImgMd5({ * savePath: '/test.png' * }).then(md5 => { * console.log(md5) * }) * ``` */ function getImgMd5(_a) { var savePath = _a.savePath; var fs = require('fs'); var crypto = require('crypto'); 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;