如何在android中使用API将base64编码的图像保存到MYSQL数据库
如何在android中使用API将base64编码的图像保存到MYSQL数据库,android,mysql,bitmap,Android,Mysql,Bitmap,onActivityResult方法中的变量和bitmapToBase64(位图)方法变量不能在之外访问,它在android中通过url时在Mysql数据库中存储空值 例如:在下面的代码中,我将编码后的图像base64String存储在encoderes中。 但在尝试从方法外部访问时,以及在通过url传递编码字符串时。 它在数据库中另存为null public String bitmapToBase64(Bitmap bitmap) { ByteArrayOutputStream byteArr
onActivityResult
方法中的变量和bitmapToBase64(位图)
方法变量不能在之外访问,它在android中通过url时在Mysql数据库中存储空值 例如:在下面的代码中,我将编码后的图像base64String存储在encoderes中。
但在尝试从方法外部访问时,以及在通过url传递编码字符串时。 它在数据库中另存为null
public String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
encoderes = Base64.encodeToString(byteArray, Base64.DEFAULT);
encodedImage.setImgStr(encoderes);
encodestr.setText(encoderes);
return encoderes; }
编码代码片段
@Override
public void onActivityResult ( int requestCode, int resultCode, Intent
data)
{
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
Uri imageUri = data.getData();
imageView.setImageURI(imageUri);
imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();
bitmapToBase64(bmap);} else if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK ) {
Uri imageUri = data.getData();
imageView.setImageURI(imageUri);
imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();
bitmapToBase64(bmap);
//Bitmap image = (Bitmap) data.getExtras().get("data");
} }
public String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
encoderes = Base64.encodeToString(byteArray, Base64.DEFAULT);
encodedImage.setImgStr(encoderes);
encodestr.setText(encoderes);
return encoderes; }
使用此方法:
public static String convertToBase64(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.setDensity(IMAGE_DENSITY);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
setDpiInfo(byteArray, IMAGE_DENSITY);
return Base64.encodeToString(byteArray, Base64.NO_WRAP);
}
用这个
public String getEncoded64ImageStringFromBitmap(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
byte[] byteFormat = stream.toByteArray();
// get the base 64 string
String imgString = Base64.encodeToString(byteFormat, Base64.NO_WRAP);
return imgString;
}
使用返回的值发送到服务器为什么不将其另存为blob?与b64相比,大小没有增加,性能更好。是否在mysql数据库中存储空值..?是否在mysql数据库中存储空值。。?