mirror of
https://github.com/tcsenpai/pensieve.git
synced 2025-06-06 19:25:24 +00:00
56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import sharp from 'sharp';
|
|
import { fileURLToPath } from 'url';
|
|
import { generateMemosLogo } from './logoGenerator.js';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
|
|
async function generatePNGLogo(size, outputFileName) {
|
|
let svgContent;
|
|
if (size <= 256) {
|
|
svgContent = generateMemosLogo(size, false, false);
|
|
} else {
|
|
svgContent = generateMemosLogo(size, true, true);
|
|
}
|
|
|
|
// 确保 logos 目录存在
|
|
const logosDir = path.join(__dirname, '..', 'static', 'logos');
|
|
if (!fs.existsSync(logosDir)) {
|
|
fs.mkdirSync(logosDir, { recursive: true });
|
|
}
|
|
|
|
const outputPath = path.join(logosDir, outputFileName);
|
|
|
|
await sharp(Buffer.from(svgContent))
|
|
.png()
|
|
.toFile(outputPath);
|
|
}
|
|
|
|
// Mac app icon sizes
|
|
const iconSizes = [16, 32, 64, 128, 256, 512, 1024];
|
|
|
|
// Generate logos for each size
|
|
(async () => {
|
|
for (const size of iconSizes) {
|
|
await generatePNGLogo(size, `memos_logo_${size}.png`);
|
|
// Generate @2x version for Retina displays
|
|
await generatePNGLogo(size * 2, `memos_logo_${size}@2x.png`);
|
|
}
|
|
console.log('PNG logos generated successfully in the static/logos directory!');
|
|
|
|
// Copy 128x128 logo to static/favicon.png
|
|
const sourceFile = path.join(__dirname, '..', 'static', 'logos', 'memos_logo_128.png');
|
|
const destinationFile = path.join(__dirname, '..', 'static', 'favicon.png');
|
|
|
|
fs.copyFile(sourceFile, destinationFile, (err) => {
|
|
if (err) {
|
|
console.error('Error copying favicon:', err);
|
|
} else {
|
|
console.log('Favicon copied successfully to static/favicon.png');
|
|
}
|
|
});
|
|
})();
|