UNPKG

img-master

Version:

An image batch processing tool with multifunctional and unlimited

130 lines (121 loc) 5.57 kB
const Chalk = require("chalk"); const Figures = require("figures"); const { ByteSize, RoundNum } = require("trample/node"); const GLOB_TEXT = { desc: `Description:\n${Chalk.blueBright("img-master")} 一个多功能无限制的图像批处理工具\n文档详情请查看 ${Chalk.yellowBright("https://github.com/JowayYoung/img-master")}`, help: "使用信息", version: "版本编号" }; const ACTION_TEXT = { compress: "压缩图像", group: "分组图像", mark: "标记图像", transform: "变换图像", transformBlur: "模糊", transformExtract: "裁剪", transformFlip: "平翻", transformFlop: "对翻", transformFormat: "格式", transformGrayscale: "灰度", transformNegate: "负片", transformNormalise: "对比", transformResize: "调整", transformRotate: "旋转", transformSharpen: "锐化" }; const QUESTION_TEXT = { group: "请选择图像分组依据", groupList: [ { name: "按照图像尺寸分组", value: "size" }, { name: "按照图像类型分组", value: "type" }, { name: `按照图像体积分组:${Chalk.blueBright("小于10k为小图,介于10k~100k为中图,大于100k为大图")}`, value: "volume" } ], judgeMarkColor: "水印颜色只能是HEX、RGB、RGBA", judgeMarkLeft: "水印左偏移量只能是0或正整数", judgeMarkSize: "水印尺寸只能是正整数", judgeMarkText: "水印文本只能是1到50位数字、英文、中文、空格、下划线或中划线的字符", judgeMarkTop: "水印上偏移量只能是0或正整数", markBlend: "请选择水印混合模式", markBlendList: [ { name: "add", value: "add" }, { name: "atop", value: "atop" }, { name: "clear", value: "clear" }, { name: "color-burn", value: "color-burn" }, { name: "color-dodge", value: "color-dodge" }, { name: "colour-burn", value: "colour-burn" }, { name: "colour-dodge", value: "colour-dodge" }, { name: "darken", value: "darken" }, { name: "dest", value: "dest" }, { name: "dest-atop", value: "dest-atop" }, { name: "dest-in", value: "dest-in" }, { name: "dest-out", value: "dest-out" }, { name: "dest-over", value: "dest-over" }, { name: "difference", value: "difference" }, { name: "exclusion", value: "exclusion" }, { name: "hard-light", value: "hard-light" }, { name: "in", value: "in" }, { name: "lighten", value: "lighten" }, { name: "multiply", value: "multiply" }, { name: "out", value: "out" }, { name: "over", value: "over" }, { name: "overlay", value: "overlay" }, { name: "saturate", value: "saturate" }, { name: "screen", value: "screen" }, { name: "soft-light", value: "soft-light" }, { name: "source", value: "source" }, { name: "xor", value: "xor" } ], markColor: "请输入水印颜色", markGravity: "请选择水印位置", markGravityList: [ { name: "无", value: "none" }, { name: "中", value: "center" }, { name: "左", value: "west" }, { name: "右", value: "east" }, { name: "上", value: "north" }, { name: "下", value: "south" }, { name: "左上", value: "northwest" }, { name: "左下", value: "southwest" }, { name: "右上", value: "northeast" }, { name: "右下", value: "southeast" } ], markLeft: "请输入水印左偏移量", markSize: "请输入水印尺寸", markText: "请输入水印文本", markTop: "请输入水印上偏移量" }; const COMPRESS_TEXT = { completed: (path, obj) => `${Figures.tick} 压缩[${Chalk.yellowBright(path)}]完成:原始体积${Chalk.redBright(ByteSize(obj.input.size))},压缩体积${Chalk.greenBright(ByteSize(obj.output.size))},优化比例${Chalk.blueBright(RoundNum(1 - obj.output.ratio, 2, true))}`, failed: (path, msg) => `${Figures.cross} 压缩[${Chalk.yellowBright(path)}]失败:${Chalk.redBright(msg)}`, limited: path => `${Figures.cross} 上传[${Chalk.yellowBright(path)}]失败:${Chalk.redBright("请确保图像体积在5M以下")}`, loading: `${Chalk.green("图像正在压缩......")}` }; const GROUP_TEXT = { sizeCompleted: `${Figures.tick} 按照图像${Chalk.greenBright("尺寸")}分组完成`, typeCompleted: `${Figures.tick} 按照图像${Chalk.greenBright("类型")}分组完成`, volumeCompleted: `${Figures.tick} 按照图像${Chalk.greenBright("体积")}分组完成` }; const MARK_TEXT = { completed: (path, text) => `${Figures.tick} 标记[${Chalk.yellowBright(path)}]完成:添加水印${Chalk.greenBright(text)}`, failed: (path, msg) => `${Figures.cross} 标记[${Chalk.yellowBright(path)}]失败:${Chalk.redBright(msg)}`, loading: `${Chalk.green("图像正在标记......")}` }; const OPERATION_TEXT = { targetCount: n => `${Figures.pointer} 处理图像总数:${Chalk.blueBright(n)}张` }; const TRANSFORM_TEXT = { completed: (path, obj) => `${Figures.tick} 变换[${Chalk.yellowBright(path)}]完成:变换尺寸${Chalk.greenBright(obj.width)}x${Chalk.greenBright(obj.height)},变换体积${Chalk.greenBright(ByteSize(obj.size))},变换类型${Chalk.greenBright(obj.format === "jpeg" ? "JPG" : obj.format.toUpperCase())}`, empty: `${Figures.cross} 变换图像失败:${Chalk.redBright("请检查配置是否未输入或输入错误")}`, failed: (path, msg) => `${Figures.cross} 变换[${Chalk.yellowBright(path)}]失败:${Chalk.redBright(msg)}`, loading: `${Chalk.green("图像正在变换......")}` }; module.exports = { ACTION_TEXT, COMPRESS_TEXT, GLOB_TEXT, GROUP_TEXT, MARK_TEXT, OPERATION_TEXT, QUESTION_TEXT, TRANSFORM_TEXT };