android - 如何在android中使用API​​将base64编码的图像保存到MYSQL数据库中

标签 android mysql bitmap

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/

相关文章:

php - MySQL 哈希函数实现

mysql - 在 MySQL 中使用单个语句更新具有递增值的列

在内存中创建位图并使用它

java - RecyclerView 项目,包含来自多个 arrayList 的数据,在 fragment 重新启动时重复

java - Android Studio - 代码生成仅显示版权作为选项

php - $_SESSION 用于论坛或 stackoverflow 上的用户

c# - 如何在放大的图像上绘图?

android - 在创建位图后调用 recycle() 和 destroyDrawingCache() 是个好主意吗?

android - 如何获取 Binder 事务缓冲区的内容以进行故障排除

android - 如何以编程方式在 Android 中发送彩信中的图像