在Node.js中,为什么我的PNG文件无法正确读取?

时间:2018-09-05 12:32:14

标签: node.js png

我正在尝试使用以下软件包:

https://github.com/photopea/UPNG.js/

具有以下图片:

enter image description here

我的代码如下:

const fs = require("fs");
const png = require("upng-js");

async function run() {
    try {
        const data = png.decode(await fs.readFile("./qr.png"));
    } catch (err) {
        console.error(err);
    }
}

run();

这会给我以下错误消息:

The input is not a PNG file!

为什么我的PNG文件无法正确读取?

2 个答案:

答案 0 :(得分:1)

您可以使用readFileSync代替readFile或使用readFile方法

const fs = require("fs");
const png = require("upng-js");
const Promise = require('bluebird');

async function run() {
    try {
        const data = png.decode(await Promise.promisify(fs.readFile)("./qr.png"));
    } catch (err) {
        console.error(err);
    }
}

run();

答案 1 :(得分:0)

使用回调等待文件

const fs = require("fs");
const png = require("upng-js");

async function run() {
    try {
        fs.readFile("./qr.png", function(err,content){
            if(!err) {
                const data = png.decode(content);
            }
        });
    } catch (err) {
        console.error(err);
    }
}

run();