将位图转换为字节数组,转换为字符串,然后一直返回

亚历克斯·瓦拉杰(Alex Vulaj)

我尝试了Java文档中找到的几种不同方法,以及其他SO问题的几种解决方案,并成功Bitmap地将a转换为abyte[]并再次返回。

问题是我现在需要将此byte []转换为String,然后再转换为byte[],然后再转换为Bitmap回顾一下我需要什么:

Bitmap -> byte[] -> String -> byte[] -> Bitmap

我知道这听起来很奇怪,但是我要完成的工作必须以这种方式完成。以下是我尝试过的方法,如果有人可以指出我做错了什么,我将不胜感激!

Bitmap bitmap = mv.getDrawingCache();

// Convert bitmap to byte[]
ByteArrayOutputStream output = new ByteArrayOutputStream(bitmap.getByteCount());
bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
byte[] imageBytes = output.toByteArray();

// Convert byte[] to string
// I have also tried using Base64.encodeToString(imageBytes, 0);

String encodedString = new String(imageBytes);

// Convert string to byte[]
byte[] newImageBytes = encodedString.getBytes();

if (imageBytes == newImageBytes) {
    Toast.makeText(SignatureActivity.this, "SUCCESS!!", Toast.LENGTH_SHORT).show();
} else { // Sadly, we always get to this point :(
    Toast.makeText(SignatureActivity.this, "BOOO", Toast.LENGTH_SHORT).show();
}

// Convert byte[] back to bitmap
bitmap = BitmapFactory.decodeByteArray(newImageBytes, 0, newImageBytes.length);

同样,执行Bitmap -> byte[] -> Bitmap成功,但是将转换加到aString并返回会导致最终Bitmap写入0kb的图像。

问题不在于转换,而在于如何验证结果。使用==比较两个阵列仅当它们是相同的数组引用返回true。由于您使用this创建新数组,byte[] newImageBytes = encodedString.getBytes();因此始终为false。请参阅此问题以供参考。

另外请注意,如果您打算以某种方式转移或使用字符串,最好使用Base64.encodeToString(imageBytes, Base64.NO_WRAP);来获取字符串,然后用取回Base64.decode(encodedString, Base64.NO_WRAP)
您也可以使用方法获得字节数组而不进行压缩copyPixelsToBuffer()(请参阅此问题的示例)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字符串数组转换为字节数组然后返回

来自分类Dev

源字节数组转换为字符串,然后返回字节数组与源字节不同

来自分类Dev

将字符串转换为字节数组

来自分类Dev

将字符串转换为十六进制,然后转换为字节数组

来自分类Dev

如何将字符串转换为字节数组并返回

来自分类Dev

从字符串数组转换为字节数组

来自分类Dev

无法从字符串转换为字节数组

来自分类Dev

将字节字符串转换为字节或字节数组

来自分类Dev

在.NET C#中将RSA算法的字节数组签名转换为字符串,然后再次返回字节数组

来自分类Dev

将字符串格式的python字节转换为c#中的字节数组

来自分类Dev

将字节数组或位图转换为图片

来自分类Dev

RxJava 将字节数组转换为位图

来自分类Dev

如何使用Array ConvertAll将字符串数组转换为字节数组?

来自分类Dev

如何将数值数组作为字符串转换为字节数组?

来自分类Dev

将包含非ASCII字符的字节数组转换为字符串

来自分类Dev

将字节数组转换为字符串然后用正则表达式解析是否是一个坏主意?

来自分类Dev

将SID字符串格式转换为字节数组

来自分类Dev

将十六进制字符串转换为字节数组

来自分类Dev

将二进制字符串转换为字节数组

来自分类Dev

将固定大小的缓冲区(字节数组)转换为字符串

来自分类Dev

在Perl中,如何将字节数组转换为Unicode字符串?

来自分类Dev

将IP或MAC地址从字符串转换为字节数组(Arduino或C)

来自分类Dev

将字节数组转换为数字字符串[c#]

来自分类Dev

Java-将字节数组或字符串转换为(虚拟)文件

来自分类Dev

将字节数组中的压缩数据转换为字符串

来自分类Dev

将字符串转换为字节数组,但保持相同的值

来自分类Dev

如何使用Delphi将字节数组转换为字符串?

来自分类Dev

将二进制字符串转换为字节数组

来自分类Dev

将包含NUL的字节数组转换为字符串

Related 相关文章

  1. 1

    将字符串数组转换为字节数组然后返回

  2. 2

    源字节数组转换为字符串,然后返回字节数组与源字节不同

  3. 3

    将字符串转换为字节数组

  4. 4

    将字符串转换为十六进制,然后转换为字节数组

  5. 5

    如何将字符串转换为字节数组并返回

  6. 6

    从字符串数组转换为字节数组

  7. 7

    无法从字符串转换为字节数组

  8. 8

    将字节字符串转换为字节或字节数组

  9. 9

    在.NET C#中将RSA算法的字节数组签名转换为字符串,然后再次返回字节数组

  10. 10

    将字符串格式的python字节转换为c#中的字节数组

  11. 11

    将字节数组或位图转换为图片

  12. 12

    RxJava 将字节数组转换为位图

  13. 13

    如何使用Array ConvertAll将字符串数组转换为字节数组?

  14. 14

    如何将数值数组作为字符串转换为字节数组?

  15. 15

    将包含非ASCII字符的字节数组转换为字符串

  16. 16

    将字节数组转换为字符串然后用正则表达式解析是否是一个坏主意?

  17. 17

    将SID字符串格式转换为字节数组

  18. 18

    将十六进制字符串转换为字节数组

  19. 19

    将二进制字符串转换为字节数组

  20. 20

    将固定大小的缓冲区(字节数组)转换为字符串

  21. 21

    在Perl中,如何将字节数组转换为Unicode字符串?

  22. 22

    将IP或MAC地址从字符串转换为字节数组(Arduino或C)

  23. 23

    将字节数组转换为数字字符串[c#]

  24. 24

    Java-将字节数组或字符串转换为(虚拟)文件

  25. 25

    将字节数组中的压缩数据转换为字符串

  26. 26

    将字符串转换为字节数组,但保持相同的值

  27. 27

    如何使用Delphi将字节数组转换为字符串?

  28. 28

    将二进制字符串转换为字节数组

  29. 29

    将包含NUL的字节数组转换为字符串

热门标签

归档