Files
hoerdle/scripts/convert-logos-to-png.js
2025-12-05 12:26:54 +01:00

48 lines
1.6 KiB
JavaScript

const sharp = require('sharp');
const fs = require('fs');
const path = require('path');
async function convertSvgToPng(svgPath, pngPath, size) {
try {
const svgBuffer = fs.readFileSync(svgPath);
await sharp(svgBuffer, {
density: 300 // High DPI for better quality
})
.resize(size, size, {
fit: 'contain',
background: { r: 255, g: 255, b: 255, alpha: 0 } // Transparent background
})
.png()
.toFile(pngPath);
console.log(`✅ Created ${pngPath} (${size}x${size})`);
} catch (error) {
console.error(`❌ Error converting ${svgPath}:`, error.message);
}
}
async function main() {
const publicDir = path.join(__dirname, '..', 'public');
// Convert logo.svg to various PNG sizes
const logoPath = path.join(publicDir, 'logo.svg');
if (fs.existsSync(logoPath)) {
await convertSvgToPng(logoPath, path.join(publicDir, 'logo-512.png'), 512);
await convertSvgToPng(logoPath, path.join(publicDir, 'logo-256.png'), 256);
await convertSvgToPng(logoPath, path.join(publicDir, 'logo-128.png'), 128);
}
// Convert logo-large.svg to larger PNG sizes
const logoLargePath = path.join(publicDir, 'logo-large.svg');
if (fs.existsSync(logoLargePath)) {
await convertSvgToPng(logoLargePath, path.join(publicDir, 'logo-1024.png'), 1024);
await convertSvgToPng(logoLargePath, path.join(publicDir, 'logo-512.png'), 512);
}
console.log('\n✨ Logo conversion complete!');
}
main();