使用普通Javascript

时间:2016-05-23 12:31:13

标签: javascript node.js

我想..

想要并且已经尝试过......

  • ..使用本机工具,例如imagemagick(这是我目前在我的应用程序中使用的东西,但它对维护平台独立性非常不利)。
  • ..使用内部使用原生工具的工具(例如gm.js)。
  • ..依赖于http://www.google.com/s2/favicons?domain=www.google.de等不允许配置结果大小或需要付款或登录的网络服务。

因此,我喜欢仅限Javascript的解决方案。我在另一个应用程序中使用了Jimp,但它不支持ICO文件。

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

使用FileReader()。将Base64转换为data / png。完成。

const inputFile = __dirname + "/favicon.ico";
const outputFile = __dirname + "/favicon.png";

(function( inputFile, outputFile ) {

const fileApi = require("file-api");
const fs = require("fs");
const File = fileApi.File;
var fileReader = new fileApi.FileReader();
fileReader.readAsDataURL(new File(inputFile));
fileReader.addEventListener("load", function (ev) {
    var rawdata = ev.target.result;
    rawdata = rawdata.replace(/.*base64,/, "");
    fs.writeFileSync(outputFile, rawdata, "base64");
});

})(inputFile, outputFile);