t-comm
Version:
专业、稳定、纯粹的工具库
124 lines (119 loc) • 3.28 kB
JavaScript
;
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;