如何从 android 中的位图中获取图像的原始字符串?

How to get raw string of an image from Bitmap in android?

我正在制作一个人们可以拍摄和上传照片的应用程序。我目前有一个代表照片的 Bitmap 对象,我想 post 将其发送到服务器。

不幸的是,服务器需要 jpg 的原始文本(就像您在 linux 上键入 cat /path/to/jpg 时看到的那样)。

如何将我的 Bitmap 转换成这种 String

我猜你的服务器需要一个 Base64 编码的图像字符串,而不仅仅是来自 cat /path/to/jpg 的字符串。

要获取 Base64 字符串,您可以使用:

ByteArrayOutputStream out = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); // '100' is quality
byte[] byteArray = out.toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);

假设您的位图图像被 bitmapImage -

引用
Bitmap bitmapImage = //your code for getting Bitmap

现在创建 ByteOutputStream

ByteArrayOutputStream byteOutptuStream = new ByteArrayOutputStream();  
bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, byteOutptuStream); 
byte[] byteArray = byteOutptuStream.toByteArray();  

然后使用 Base64 编码对图像进行编码 -

String imageAsString = Base64.encodeToString(byteArray, Base64.DEFAULT); 

更新: 如果您想跳过 Base64 编码,那么您可以使用任一代码片段 -

String imageAsString2 = new String(byteArray, "UTF-8"); 
String imageAsString3 = new String(byteArray);
String imageAsString4 = new byteArray.toString();