/** * SVG to PNG 转换脚本 * 使用 Puppeteer 在浏览器环境中转换 SVG 为不同尺寸的 PNG */ import { readFileSync, writeFileSync, mkdirSync } from 'fs' import { fileURLToPath } from 'url' import { dirname, join } from 'path' const __filename = fileURLToPath(import.meta.url) const __dirname = dirname(__filename) // 定义需要生成的图标尺寸 const SIZES = [16, 32, 48, 128] // 读取 SVG 文件 const svgPath = join(__dirname, '../public/icons/simpleLogo.svg') const svgContent = readFileSync(svgPath, 'utf-8') // 解析 SVG 尺寸 const viewBoxMatch = svgContent.match(/viewBox="([^"]+)"/) const [, , , originalWidth, originalHeight] = viewBoxMatch ? viewBoxMatch[1].split(' ').map(Number) : [0, 0, 1150, 1150] console.log('原始SVG尺寸:', originalWidth, 'x', originalHeight) // 创建一个简单的 Canvas 转换函数 async function convertSvgToPng(svgContent, outputPath, size) { try { // 使用 node-canvas 或其他方法 // 这里我们将生成一个HTML文件,用户可以在浏览器中打开并保存 const html = `
右键点击下方图片选择"另存为"保存PNG文件
${SIZES.map(s => `