Javascript 如何在Nodejs中将base64解码为图像?
我正在通过套接字发送一个编码为base64的图像,但解码不起作用。必须包含新映像的文件被写入base64,而不是jpg文件 编码套接字:Javascript 如何在Nodejs中将base64解码为图像?,javascript,node.js,stream,buffer,Javascript,Node.js,Stream,Buffer,我正在通过套接字发送一个编码为base64的图像,但解码不起作用。必须包含新映像的文件被写入base64,而不是jpg文件 编码套接字: function encode_base64(filename) { fs.readFile(path.join(__dirname, filename), function (error, data) { if (error) { throw error; } else { console.log(data);
function encode_base64(filename) {
fs.readFile(path.join(__dirname, filename), function (error, data) {
if (error) {
throw error;
} else {
console.log(data);
var dataBase64 = data.toString('base64');
console.log(dataBase64);
client.write(dataBase64);
}
});
}
rl.on('line', (data) => {
encode_base64('../image.jpg')
})
function base64_decode(base64str, file) {
var bitmap = new Buffer(base64str, 'base64');
fs.writeFileSync(file, bitmap);
console.log('****** File created from base64 encoded string ******');
}
client.on('data', (data) => {
base64_decode(data,'copy.jpg')
});
// the first few characters in the new file
//k1NRWuGwBGJpmHDTI9VcgOcRgIT0ftMsldCjFJ43whvppjV48NGq3eeOIeeur
解码插座:
function encode_base64(filename) {
fs.readFile(path.join(__dirname, filename), function (error, data) {
if (error) {
throw error;
} else {
console.log(data);
var dataBase64 = data.toString('base64');
console.log(dataBase64);
client.write(dataBase64);
}
});
}
rl.on('line', (data) => {
encode_base64('../image.jpg')
})
function base64_decode(base64str, file) {
var bitmap = new Buffer(base64str, 'base64');
fs.writeFileSync(file, bitmap);
console.log('****** File created from base64 encoded string ******');
}
client.on('data', (data) => {
base64_decode(data,'copy.jpg')
});
// the first few characters in the new file
//k1NRWuGwBGJpmHDTI9VcgOcRgIT0ftMsldCjFJ43whvppjV48NGq3eeOIeeur
改变编码功能如下。另外,请记住,新缓冲区已被弃用,所以请使用Buffer.from方法
function encode_base64(filename) {
fs.readFile(path.join(__dirname, filename), function (error, data) {
if (error) {
throw error;
} else {
//console.log(data);
var dataBase64 = Buffer.from(data).toString('base64');
console.log(dataBase64);
client.write(dataBase64);
}
});
}
并解码如下:
function base64_decode(base64Image, file) {
fs.writeFileSync(file,base64Image);
console.log('******** File created from base64 encoded string ********');
}
client.on('data', (data) => {
base64_decode(data,'copy.jpg')
});
您可以使用以下方法解码base64图像 编辑 剥去收割台 写入文件
注意:-不要忘记这里的{encoding:'base64'},您就可以开始了。似乎解码函数base64_decode将数据作为缓冲区。 因此,新Bufferbase64str中的编码参数“base64”被忽略。 比较vs的文档 我建议先转换成字符串 函数base64\u decodebase64str,文件{ var bitmap=new Bufferbase64str.toString'base64'; fs.writeFileSyncfile,位图; console.log'*******文件是从base64编码字符串创建的********'; }
接收套接字的终端出现以下错误:TypeError:base64str.split不是base64的函数\u decode C:\Users\HP\Desktop\Node\sockets\client2.js:17:28是数据字符串吗?在client.writedataBase64上,数据是字符串终端写入了它的文件,该文件是根据base64编码的字符串创建的,但jpg文件仍然是作为base64写入的,没有图像madeCan你可以再试一次吗?我更改了解码方法代码a bitit给了我一个错误:弃用警告:由于安全和可用性问题,缓冲区已弃用,因此我将其更改为Buffer.fromdata,base64,但该文件仍然使用base64编写,而不是jpgtry,以便为您提供另一种解决方案。我已更新了代码,您可以查看它@Alihmede什么是image.png?如何访问此结果?文件中出现了奇怪的字符,甚至不是base64���正当实际上这是另一个问题,因为k1NRWuGwBGJpmHDTI9VcgOcRgIT0ftMsldCjFJ43whvppjV48NGq3eeOIeeur不是有效的base64字符串。尝试将写入客户端的前10个字符与base64_解码函数接收到的前10个字符记录在console.log中。