bilder komprimieren
This commit is contained in:
49
scripts/compress-images.js
Normal file
49
scripts/compress-images.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const sharp = require('sharp');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
const imagesToConvert = [
|
||||
'2-body.png',
|
||||
'2-hero.png',
|
||||
'qr-code-analytics-hero.png',
|
||||
'1-hero.png'
|
||||
];
|
||||
|
||||
const blogDir = path.join(__dirname, '../public/blog');
|
||||
|
||||
async function compressImages() {
|
||||
console.log('🖼️ Starting image compression...\n');
|
||||
|
||||
for (const imageName of imagesToConvert) {
|
||||
const inputPath = path.join(blogDir, imageName);
|
||||
const outputName = imageName.replace('.png', '.webp');
|
||||
const outputPath = path.join(blogDir, outputName);
|
||||
|
||||
if (!fs.existsSync(inputPath)) {
|
||||
console.log(`⚠️ Skipping ${imageName} - file not found`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const originalSize = fs.statSync(inputPath).size;
|
||||
|
||||
try {
|
||||
await sharp(inputPath)
|
||||
.webp({ quality: 85 })
|
||||
.toFile(outputPath);
|
||||
|
||||
const newSize = fs.statSync(outputPath).size;
|
||||
const savings = ((1 - newSize / originalSize) * 100).toFixed(1);
|
||||
|
||||
console.log(`✅ ${imageName}`);
|
||||
console.log(` Original: ${(originalSize / 1024 / 1024).toFixed(2)} MB`);
|
||||
console.log(` WebP: ${(newSize / 1024 / 1024).toFixed(2)} MB`);
|
||||
console.log(` Savings: ${savings}%\n`);
|
||||
} catch (err) {
|
||||
console.error(`❌ Failed to convert ${imageName}:`, err.message);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Done! Remember to update image references in blog-data.ts');
|
||||
}
|
||||
|
||||
compressImages();
|
||||
Reference in New Issue
Block a user