nodejs конвертирует изображение между буфером и строкой - PullRequest
1 голос
/ 03 апреля 2019

Я хочу преобразовать изображение PNG из buffer в string, а затем преобразовать строку в буфер.

fs.readFile('/Users/xxx/Desktop/1.png', (err, data) => {
    if (err) throw err; // Fail if the file can't be read.
    data = Buffer.from(data)
    let str = data.toString()
    data = Buffer.from(str)
});

// server
router.register('/api/dump', (request, response) => { 
    fs.readFile('/Users/xxx/Desktop/1.png', (err, data) => {
        if (err) throw err; // Fail if the file can't be read. 
        response.writeHead(200, {'Content-Type': 'image/jpeg'}); 
        response.end(data); // Send the file data to the browser.
    });
}) 

// front
this.$get('/dump').then(result => {
    // i want to convert result to buffer
})

но новый буфер больше не является старым.

1 Ответ

1 голос
/ 03 апреля 2019

Buffer.toString() кодировка по умолчанию utf8, и вы не можете конвертировать из utf8 обратно в Buffer без разрыва изображения.

Если вы хотите преобразовать в строку, а затем обратнодля буферизации вам необходимо использовать кодировку, которая позволяет это, например base64.

fs.readFile('/Users/yihchu/Desktop/1.png', (err, data) => {
    if (err) throw err; // Fail if the file can't be read.
    var oldData = data;
    let str = data.toString('base64')
    data = Buffer.from(str, 'base64');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...