将 imageview 转换为 base64 并将其存储到 mysql 以及如何在 Android 中对其进行解码
Converting imageview to base64 and storing it into mysql and how to decode it in Android
我已经使用 base64 对图像视图进行了编码,并将该值传递给隐藏的文本视图,因为我已成功插入到数据库中。我的编码代码:
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 数据库中得到的内容。这是正确的吗?
我的问题是如何解码它以及 see/view 它在哪里?
因为它被标记了 Android 我假设你指的是 sqlite?
不是您问题的直接答案,但在 sqlite 中,您可以存储二进制 blob,而无需先转换为 base64。由于转换 to/from base64 是有成本的。
你必须实施 BitmapFactory.decodeByteArray()
来解码你的图像 base64 字符串,看看这个。
//decode base64 string to image
imageBytes = Base64.decode(encodedImage , Base64.DEFAULT);
Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
mage.setImageBitmap(decodedImage);
希望对您有所帮助!!
您的图像编码看起来正确。要将编码字符串解码回图像,您需要实现 BitmapFactory
.
首先从编码字符串中获取字节。然后使用 BitmapFactory 解码字节数组。 BitmapFactory.decodeByteArray
returns 您可以在 imageView 中使用的位图。
byte[] b = Base64.decode(encodedString,Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(b,0,b.length);
imageView.setImageBitmap(bitmap);
我已经使用 base64 对图像视图进行了编码,并将该值传递给隐藏的文本视图,因为我已成功插入到数据库中。我的编码代码:
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 数据库中得到的内容。这是正确的吗?
因为它被标记了 Android 我假设你指的是 sqlite?
不是您问题的直接答案,但在 sqlite 中,您可以存储二进制 blob,而无需先转换为 base64。由于转换 to/from base64 是有成本的。
你必须实施 BitmapFactory.decodeByteArray()
来解码你的图像 base64 字符串,看看这个。
//decode base64 string to image
imageBytes = Base64.decode(encodedImage , Base64.DEFAULT);
Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
mage.setImageBitmap(decodedImage);
希望对您有所帮助!!
您的图像编码看起来正确。要将编码字符串解码回图像,您需要实现 BitmapFactory
.
首先从编码字符串中获取字节。然后使用 BitmapFactory 解码字节数组。 BitmapFactory.decodeByteArray
returns 您可以在 imageView 中使用的位图。
byte[] b = Base64.decode(encodedString,Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(b,0,b.length);
imageView.setImageBitmap(bitmap);