再发一次裁剪图片脚本

59 阅读1分钟

再发一次裁剪图片脚本 再发一次裁剪图片脚本 再发一次裁剪图片脚本 再发一次裁剪图片脚本 再发一次裁剪图片脚本

const fs = require('fs');
const sharp = require('sharp'); 
const sizes = [
    { size: 72, folder: 'mipmap-hdpi' },
    { size: 48, folder: 'mipmap-mdpi' },
    { size: 96, folder: 'mipmap-xhdpi' },
    { size: 144, folder: 'mipmap-xxhdpi' },
    { size: 192, folder: 'mipmap-xxxhdpi' }
];
var input = "apk.png"
sizes.forEach(({ size, folder }) => {
    const outputPath = `${folder}/ic_launcher.png`;
    const outputPath2 = `${folder}/ic_launcher_round.png`;
    const r = size / 2, circleShape = Buffer.from(`<svg><circle cx="${r}" cy="${r}" r="${r}" /></svg>`);
    if (!fs.existsSync(folder)) fs.mkdirSync(folder);
    sharp(input).resize(size, size).toFile(outputPath, (err, info) => console.log(err));
    sharp(input).resize(size, size).composite([{ input: circleShape, blend: 'dest-in' }]).toFile(outputPath2, (err, info) => console.log(err));
});