mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 14:34:13 +08:00
37 lines
1009 B
JavaScript
37 lines
1009 B
JavaScript
const png2icons = require("png2icons");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
|
|
const pngToIcon = (input, outputDir, type = "ico") => {
|
|
if (input instanceof Array) {
|
|
input.forEach((input) => {
|
|
pngToIcon(input, outputDir, type);
|
|
});
|
|
return;
|
|
}
|
|
let icon, outputFile, basename;
|
|
console.log(input);
|
|
if (input.startsWith("data:image/png;base64,")) {
|
|
input = Buffer.from(input.split(",")[1], "base64");
|
|
basename = new Date().getTime().toString();
|
|
} else {
|
|
basename = path.basename(input, ".png");
|
|
input = fs.readFileSync(input);
|
|
}
|
|
if (type == "ico") {
|
|
icon = png2icons.createICO(input, png2icons.BICUBIC, 0, false);
|
|
outputFile = path.join(outputDir, basename + ".ico");
|
|
} else {
|
|
icon = png2icons.createICNS(input, png2icons.BILINEAR, 0);
|
|
outputFile = path.join(outputDir, basename + ".icns");
|
|
}
|
|
if (!icon) return;
|
|
fs.writeFile(outputFile, icon, (err) => {
|
|
if (err) throw err;
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
pngToIcon,
|
|
};
|