再发一次裁剪图片脚本 再发一次裁剪图片脚本 再发一次裁剪图片脚本 再发一次裁剪图片脚本 再发一次裁剪图片脚本
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));
});