NTR CFW 截图批量合并脚本
用途
NTR CFW 的截图会生成两个文件:top_xxxx.bmp
与 bot_xxxx.bmp
。
然而,大多数情况下.. 你需要合并 NTR CFW 截图产生的上下屏文件到一个文件。
因此,我决定写一个这样的脚本帮助我一次性处理所有图片。
需求
- 安装 NodeJS
并确保支援 es6 语法。 - 安装 ImageMagick,并可以直接从终端/命令行访问。
代码
/**
* ntr screenshot merger.
* Windows: Ensure directory of `convert.exe` is prepend to %PATH% before execute.
* Linux/Mac: Install ImageMagick Package.
*
* @author Jixun<https://jixun.uk/>
* @license MIT License<https://opensource.org/licenses/MIT>
*/
const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');
let dir = process.argv[2] || process.cwd();
let outDir = process.argv[3] || path.join(dir, 'out');
let names = fs.readdirSync(dir);
if (!fs.existsSync(outDir)) {
fs.mkdirSync(outDir);
}
names.forEach(name => {
let m = name.match(/^top_(\d{4})\.bmp$/i);
if (m) {
let in_top = path.join(dir, name);
let in_bot = path.join(dir, `bot_${m[1]}.bmp`);
let output = path.join(outDir, `${m[1]}.png`);
console.info(`Merging image ${m[1]} ...`);
execSync(`convert "${in_top}" -background black "${in_bot}" -gravity center -append "${output}"`);
}
});
使用
$ node ntr_merge.js [[source dir] output dir]
Params:
source dir: Default to "current directory"
output dir: Default to "source dir/out"
授权协议
MIT 授权协议,可二次分发,保留作者标示即可。