将 base64 图像字符串转换为可以使用 node.js 提供给浏览器的图像文件

Posted

技术标签:

【中文标题】将 base64 图像字符串转换为可以使用 node.js 提供给浏览器的图像文件【英文标题】:convert a base64 image string to a image file that can be served to browsers using node.js 【发布时间】:2011-09-13 19:50:35 【问题描述】:

问题与 Restify 不接受 HTTP ACCEPT 标头有关,图像渲染代码很好。


我有一个编码为 base64 字符串的图像,我想使用 node.js 将其用作图像。目前我有以下代码(我正在使用 Restify),它可以在 Chrome 中呈现图像,但图像不会在其他浏览器中呈现(尝试过 IE9、Firefox 4、android 浏览器):

var decodedBuffer = new Buffer(dataString,"base64");            
    res.send(
          code: 200,
          headers: 'Content-Type': 'image/png', 'Content-Length': decodedBuffer.length,   
          noEnd: true                               
    );     

    res.write(decodedBuffer);                       
    res.end();  

谁能解释我可能做错了什么??

谢谢

【问题讨论】:

你从服务器得到什么数据?尝试 curl/wget 图像并在图像编辑器中打开它。是png吗? @Andy Britcliffe 如果您找到解决方案,请告诉我们您的解决方案来帮助我们。我遇到了和你一样的问题...谢谢... 【参考方案1】:

使用data URI syntax,这意味着您必须在响应前加上数据协议和MIME类型,并指定base64编码:

res.write("data:image/png;base64,"+decodedBuffer);

【讨论】:

以上是关于将 base64 图像字符串转换为可以使用 node.js 提供给浏览器的图像文件的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上使用 Phonegap 将图像转换为 Base64 字符串

将base 64编码字符串转换为图像

Android将base64编码的字符串转换为图像视图

react-native-camera 将图像 base64 转换为 jpeg

如何将 base64 字符串格式的图像转换为清晰图像缩小器期望的数据类型?

完整图像资产未转换为 base64 字符串