Ответ изображения nodejs base64 не приходит как объект изображения. при добавлении заголовка {'Content-Type': 'image/jpeg or png'}

Когда я создаю изображение на стороне сервера и получаю строку изображения base64.

Который я хочу отправить как объект изображения. Он правильно работает с узлом-холстом, создавая поток изображений.

    let stream = this.canvas.jpegStream({progressive: true});

    this.res.writeHead(200, {
        'Content-Type': 'image/jpeg'
    });
    stream.on('data', (chunk) => {
        this.res.write(chunk);
    });
    stream.on('end', () => {
        this.res.end(); 
    });
// Working perfectly...!

Но когда я использую Fabric.js, он возвращал прямое изображение base64 вместо потока base64, такого как node-canvas. Когда я отправлял base64 в качестве ответа, изображение становится пустым.

    this.res.writeHead(200, {
        'Content-Type': 'image/png'
    });
    this.res.write(this.fabricCanvas.toDataURL());
    this.res.end();

person Sumeet Roy    schedule 30.04.2018    source источник


Ответы (1)


Content-Type: image/png не является правильным заголовком для использования с URL-адресом data:.

Вы можете попробовать один из них:

// Preferred: returns a PNG-encoded image buffer
this.fabricCanvas.toBuffer()

// Wasteful - goes from binary to base64 and back
Buffer.from(this.fabricCanvas.toDataURL().split(",")[1], "base64")
person ZachB    schedule 15.01.2019