const sharp = require('sharp'); const fs = require('fs'); const path = require('path'); const sizes = [192, 256, 384, 512]; const generateIcon = async (size) => { const svg = ` ${generatePixelPattern(size * 0.6)} 拼豆 `; const outputPath = path.join(__dirname, '..', 'public', `icon-${size}x${size}.png`); await sharp(Buffer.from(svg)) .png() .toFile(outputPath); console.log(`生成图标: ${outputPath}`); }; function generatePixelPattern(size) { const pixelSize = size / 8; const colors = ['#8B5CF6', '#3B82F6', '#10B981', '#F59E0B', '#EF4444']; let pattern = ''; for (let y = 0; y < 6; y++) { for (let x = 0; x < 6; x++) { if (Math.random() > 0.3) { const color = colors[Math.floor(Math.random() * colors.length)]; pattern += ``; } } } return pattern; } async function generateAllIcons() { for (const size of sizes) { await generateIcon(size); } } generateAllIcons().catch(console.error);