onActivityResult
方法和 bitmapToBase64(Bitmap bitmap)
方法变量内的变量无法从外部访问,
它存储在Mysql数据库中传递null值,同时在android中传递url。
例如:在下面的代码中,我将编码图像 base64String 存储在编码器中。
但是,当尝试从方法外部访问并通过 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; }
编码代码 fragment
@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);
}
关于android - 如何在android中使用API将base64编码的图像保存到MYSQL数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236240/