如何使用 node-red 保存 base64 编码的图像
Howto save a base64-encoded image using node-red
我写了一个 Android 应用程序来发送一些文本(应该保存在一个文件中)和一个图像(应该保存为一个单独的文件),带有 HTTP-POST-请求使用 volley 库。
图像被转换为字节数组。此字节数组使用 Base64.encodeToString() 转换为字符串。此字符串被设置为 JSON 对象中的属性,该对象被发送到服务器。
服务器端的接口是node-red-server:接收数据并提取文件名和文本。到目前为止一切正常。但是在保存图像时(这是一个 Base64 编码的字符串)只将字符串写入 jpg 文件。
剩下要做的就是解码图像字符串并将其另存为图像。我不知道该怎么做。我尝试了 this 方法,但是 node-red 不知道 Image().
我也没有完全理解为什么发送图像的最佳方式是将其解析为字节数组并将该数组编码为 Base64 字符串。如果有人可以解释这个想法或 link 给我一个教程,这可能对我有帮助。
如果您需要我的 app-code/node-red-flows 帮助,请告诉我。
有一个 base64 Node-RED 节点 (node-red-node-base64),它将 base64 编码的字符串转换为 NodeJS 二进制缓冲区。
如果您 运行 在将字符串发送到文件节点之前通过它,您将获得格式正确的图像。
我解决了这个问题。对于其他正在寻找答案的人,我 post 这个:
base64 Node-RED node hardillb mentioned in his 工作正常,但前提是整个字符串在一行中。
如果您使用带有 Base64.DEFAULT
标志的 encodeToString()
函数,如下所示:
String returnString = Base64.encodeToString(bytes, Base64.DEFAULT);
您收到多行字符串。
如果您使用标志 Base64.NO_WRAP
而不是它可以在节点上正常工作。
我写了一个 Android 应用程序来发送一些文本(应该保存在一个文件中)和一个图像(应该保存为一个单独的文件),带有 HTTP-POST-请求使用 volley 库。
图像被转换为字节数组。此字节数组使用 Base64.encodeToString() 转换为字符串。此字符串被设置为 JSON 对象中的属性,该对象被发送到服务器。
服务器端的接口是node-red-server:接收数据并提取文件名和文本。到目前为止一切正常。但是在保存图像时(这是一个 Base64 编码的字符串)只将字符串写入 jpg 文件。
剩下要做的就是解码图像字符串并将其另存为图像。我不知道该怎么做。我尝试了 this 方法,但是 node-red 不知道 Image().
我也没有完全理解为什么发送图像的最佳方式是将其解析为字节数组并将该数组编码为 Base64 字符串。如果有人可以解释这个想法或 link 给我一个教程,这可能对我有帮助。
如果您需要我的 app-code/node-red-flows 帮助,请告诉我。
有一个 base64 Node-RED 节点 (node-red-node-base64),它将 base64 编码的字符串转换为 NodeJS 二进制缓冲区。
如果您 运行 在将字符串发送到文件节点之前通过它,您将获得格式正确的图像。
我解决了这个问题。对于其他正在寻找答案的人,我 post 这个:
base64 Node-RED node hardillb mentioned in his
如果您使用带有 Base64.DEFAULT
标志的 encodeToString()
函数,如下所示:
String returnString = Base64.encodeToString(bytes, Base64.DEFAULT);
您收到多行字符串。
如果您使用标志 Base64.NO_WRAP
而不是它可以在节点上正常工作。