46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
import { mkdir } from "fs/promises";
|
|
import path from "path";
|
|
import sharp from "sharp";
|
|
|
|
const SOURCE = path.join(process.cwd(), "public", "images", "logo-muaythai.jpg");
|
|
const OUT_DIR = path.join(process.cwd(), "public", "icons");
|
|
|
|
const sizes = [72, 96, 128, 192, 256, 384, 512];
|
|
|
|
async function main() {
|
|
await mkdir(OUT_DIR, { recursive: true });
|
|
|
|
const source = sharp(SOURCE).resize(512, 512, {
|
|
fit: "cover",
|
|
position: "centre",
|
|
});
|
|
|
|
for (const size of sizes) {
|
|
await source
|
|
.clone()
|
|
.resize(size, size)
|
|
.png()
|
|
.toFile(path.join(OUT_DIR, `icon-${size}x${size}.png`));
|
|
console.log(`✓ icon-${size}x${size}.png`);
|
|
}
|
|
|
|
await source
|
|
.clone()
|
|
.resize(180, 180)
|
|
.png()
|
|
.toFile(path.join(OUT_DIR, "apple-touch-icon.png"));
|
|
console.log(`✓ apple-touch-icon.png`);
|
|
|
|
await source.clone().resize(32, 32).png().toFile(path.join(OUT_DIR, "favicon-32.png"));
|
|
console.log(`✓ favicon-32.png`);
|
|
|
|
await source.clone().resize(16, 16).png().toFile(path.join(OUT_DIR, "favicon-16.png"));
|
|
console.log(`✓ favicon-16.png`);
|
|
|
|
console.log("Icônes PWA générées ✅");
|
|
}
|
|
|
|
main().catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
}); |