我使用base64对imageview进行了编码,并将该值传递给textview,就像我成功插入db一样隐藏。我要编码的代码:
public void convertImg(){
imageView.buildDrawingCache();
Bitmap bm = imageView.getDrawingCache();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
String encodedImage = Base64.encodeToString(b , Base64.DEFAULT);
base64.setText(encodedImage);
}
这就是我在mysql数据库中得到的。对吗?
我的问题是如何解码以及在哪里看到/查看它?
3条答案
按热度按时间fivyi3re1#
你必须实施
BitmapFactory.decodeByteArray()
要解码图像base64字符串,请看这个。希望对你有帮助!!
xcitsw882#
既然这个被标记为android,我猜你指的是sqlite?
这不是对您的问题的直接回答,但在sqlite中,您可以存储二进制blob,而无需首先转换为base64。在您的情况下,它可能会更有效,因为转换到base64或从base64转换需要成本。
https://www.sqlite.org/datatype3.html
pbwdgjma3#
你的图像编码看起来不错。要将编码字符串解码回图像,您需要实现
BitmapFactory
.首先从编码字符串中获取字节。然后使用bitmapfactory对字节数组进行解码。
BitmapFactory.decodeByteArray
返回可以在imageview中使用的位图。