android - 如何通过android从rails读取base64编码的图片

标签 android ruby-on-rails ruby base64

我想将一个base64编码的图片从ruby on Rails发送到android。 将数据发送到rails包括图片编码和解码工作,从rails传输回android的数据也可以工作,但我无法解码由rails编码的图片。我总是在以下标记行处收到 NullpointerException:

imageOutFile = new FileOutputStream(file);
byte[] bytes = Base64.decode(imageString, Base64.URL_SAFE);
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
**bitmap.compress(Bitmap.CompressFormat.JPEG, 100, imageOutFile);**

编码后的字符串如下所示(它是最短的):

_9j_4AAQSkZJRgABAQEASABIAAD_4Se-RXhpZgAASUkqAAgAAAALAA4BAgAUAAAAkgAAAA8BAgAUAAAApgAAABABAgAJAAAAugAAABIBAwABAAAAAQAAAA==

另一个字符串是这样的:

_9j_4AAQSkZJRgABAQEAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_wAARCAHgAoADASIAAhEBAxEB_8QAHAABAQEBAQEBAQEAAAAAAAAAAAoICQcGAgED_8QARRAAAQIBCAYIBAQEBwACAwAAAAYHBQEECAkZOIe3AxQVFqfWAhhWV1iWl9cXaNXnERIjJRM2VfAkJic1UZSkUmchMjf_xAAXAQEBAQEAAAAAAAAAAAAAAAAACQEH_8QAMxEBAAAEAwUGBQMFAAAAAAAAAAEGB1YCGJYDcbHV1ggXQUam8AURFjFRYaG1IYGRxcb_2gAMAwEAAhEDEQA_AIPwAAAAAAACo6rguPM3iPm-vCXEqOq4LjzN4j5vrwDbQAAAAAAABLnWM33Hqw4yoQ5UYS51jN9x6sOMqEOBiMAAAAAAAAqOq4LjzN4j5vrwlxKjquC48zeI-b68A20AAAAAAAAS51jN9x6sOMqEOVGEudYzfcerDjKhDgYjAAAAAAAAKjquC48zeI-b68JcSo6rguPM3iPm-vANtAAAAAAAAEudYzfcerDjKhDlRhLnWM33Hqw4yoQ4GIwAAAAAAACo6rguPM3iPm-vCXEqOq4LjzN4j5vrwDbQAAAAAAABLnWM33Hqw4yoQ5UYS51jN9x6sOMqEOBiMAAAAAAAAqOq4LjzN4j5vrwlxKjquC48zeI-b68A20AAAAAAAAS51jN9x6sOMqEOVGEudYzfcerDjKhDgbYsbvmb4PfdIWN3zN8HvukdtABxLsbvmb4PfdIWN3zN8HvukdtABxLsbvmb4PfdIWN3zN8HvukdtABxLsbvmb4PfdId

在 Logcat 中,解码失败后我收到如下消息:

--- decoder->decode returned false

我使用以下方法对字符串进行编码,并将带有 json 对象的字符串发送到 android。图片是由CarrierWave的上传者上传的。

Base64.urlsafe_encode64(File.read("public#{picture_path.to_s}"))

最佳答案

我必须读取文件二进制(“rb”),然后对其进行编码。

Base64.encode64(File.open("public#{picture_path.to_s}", "rb") {|io| io.read})

关于android - 如何通过android从rails读取base64编码的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18116386/

相关文章:

Ruby block /匿名函数占位符参数

ruby - 如何在 Ruby 中处理大文件?

android - 应该在哪里报告与不同安卓设备的不兼容性?

android - onDoupleTap 不触发

android - 以编程方式检查设备是否有 NFC 读取器

ruby-on-rails - 如何在rails中包含html文件?

java - 持续的Android后台服务

ruby-on-rails - 带有 Bootstrap 3 的 Simple_form 类表单水平在 Rails 4 中不起作用

javascript - 将多个 rails 变量传递给 javascript

ruby - 使用 Minitest 对 protected 或私有(private)方法进行 stub