19 lines
652 B
JavaScript
19 lines
652 B
JavaScript
// 用法: node svg2png.mjs <srcDir> <outDir> [width]
|
|
// 把 srcDir 下所有 .svg 转为 outDir 下同名 .png(默认 800 宽,2x 高清)
|
|
import sharp from 'sharp'
|
|
import { readdirSync, mkdirSync } from 'fs'
|
|
import { join } from 'path'
|
|
|
|
const [srcDir, outDir, widthArg] = process.argv.slice(2)
|
|
const width = Number(widthArg) || 800
|
|
mkdirSync(outDir, { recursive: true })
|
|
let n = 0
|
|
for (const f of readdirSync(srcDir)) {
|
|
if (!f.endsWith('.svg')) continue
|
|
const out = join(outDir, f.replace(/\.svg$/, '.png'))
|
|
await sharp(join(srcDir, f)).resize({ width }).png().toFile(out)
|
|
n++
|
|
console.log('png:', out)
|
|
}
|
|
console.log(`done: ${n} files`)
|