Ответ узла imagejs base64 не приходит как объект изображения. при добавлении заголовка {'Content-Type': 'image / jpeg или png'} - PullRequest
0 голосов
/ 30 апреля 2018

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

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

    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();

1 Ответ

0 голосов
/ 16 января 2019

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

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

// 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")
...