当前位置: 首页 > 知识库问答 >
问题:

Android中base64字符串到位图的解码

罗甫
2023-03-14
public Bitmap StringToBitMap(String encodedString){          
   try{              
         byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT);               
         Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
         return bitmap;
       }catch(Exception e){
           e.getMessage();
           return null;
       } 
}

为什么会发生这种事,有谁知道…??我做错了什么...

共有1个答案

扈俊健
2023-03-14

我认为问题在于,你正试图将一个base64字符串解码为位图,但实际上你只是想将其解码为一个字符串。下面是这样做的代码:

String decodeBase64String(String encodedString)
{
    byte[] data = Base64.decode(encodedString, Base64.DEFAULT);
    return new String(data, "UTF-8");
}

(假定为UTF-8编码)

如果您用您的测试字符串调用这个函数,如下所示:

String result = decodeBase64String("aGVsbG8=");

那么结果将是“你好”。

以下是如何将文本转换为位图:

Bitmap textToBitmap(String text)
{
     Paint paint = new Paint();
     paint.setColor(Color.WHITE);
     paint.setStrokeWidth(12);
     Rect bounds = new Rect();
     paint.getTextBounds(text, 0, text.length(), bounds);
     Bitmap bitmap = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888);
     Canvas canvas = new Canvas(bitmap);
     canvas.drawText(text, 0, 0, paint);
     return bitmap;
}
String result = decodeBase64String("aGVsbG8=");
Bitmap bitmap = textToBitmap(result);
Bitmap bitmap = textToBitmap("hello");
 类似资料:
  • 问题内容: 有没有一种方法或如何使用Java开发Java字符串并从中创建位图? 我看了一下Java API的位图,找不到任何东西 问题答案: 您可以使用位图工厂的encodebytearray方法,例如 其中myImageData是base64字符串。 如果您有一个数组,则将其传递给encodeByteArray方法。

  • 问题内容: -– -–解决方案— -– 问题在我们的服务器上。如果将www放在域名前面,它只能处理发帖请求。这就是造成问题的原因。我将第一个答案设置为THE答案,因为一旦我整理出网址,它便会起作用。 原始问题 我的PHP脚本中有一个POST变量,始终为空。 我试图更改变量的名称,变量的内容等。 问题必须存在于Java代码中,因为当我在php中请求时,它为null。 这是我的情况: 我让用户拍摄照片

  • 问题内容: 我试图和一个图像。在某些设备上,它可以完美运行,而在其他设备上,则不能。我正在上传到服务器并从服务器获取。我找到了各种解决方案,但仍然无法解决我的问题。这是我的代码: 编码方式: 解码: ImageBase64.java: 错误堆栈: 在某些设备中我也遇到了此错误: 我已经尝试过的解决方案是: 将图像加载到位图对象时出现内存不足问题 如何将图像转换为Base64字符串? 内存不足错误I

  • 问题内容: 是否有仅使用JAVA 1.5 LIBRARIES来解码base64字符串的简便方法? 由于Windows和Mac OS X之间存在跨平台兼容性问题,我必须使用Java 1.5(仅Mac 10.5支持Java 1.6,低于10.5的所有内容均默认使用Java 1.5)。 对象“ sun.misc.Base64Decoder”在Java 6中存在,但在Java 5中不存在。 问题答案: 不

  • 问题内容: 我通过ajax将图像作为base64字符串发送到django。在我的django视图中,我需要调整图像大小并将其保存在文件系统中。 这是一个base64字符串(简体): 我尝试使用以下python代码在PIL中打开此文件: 我正在尝试将上传的图像显示回去,但是firefox抱怨说 我不知道我的错误。 解: 问题答案: 解: 将打开的PIL图像保存到类似文件的对象即可解决此问题。