Android 如何在Sqlite数据库中插入图像?

Android 如何在Sqlite数据库中插入图像?,android,android-activity,Android,Android Activity,在这里,我想在数据库中发送我的图像。。但是我不能给imgPro赋值。放。。请帮帮我 else if (requestCode == 2) { Uri selectedImage = data.getData(); String[] filePath = { MediaStore.Images.Media.DATA }; Cursor c = getContentResolver().query(selectedImage,

在这里,我想在数据库中发送我的图像。。但是我不能给imgPro赋值。放。。请帮帮我

else if (requestCode == 2) {

            Uri selectedImage = data.getData();
            String[] filePath = { MediaStore.Images.Media.DATA };
            Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null);
            c.moveToFirst();
            int columnIndex = c.getColumnIndex(filePath[0]);
            String picturePath = c.getString(columnIndex);
            c.close();
            Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
            imgPro.setImageBitmap(thumbnail);


        }

你可以像下面这样做。

   public class ImageConverter {

    public static String imageToStringConverter(Bitmap image){
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        String imageToString = Base64.encodeToString(byteArray, Base64.NO_WRAP);
        return imageToString;
    }

    public static Bitmap stringToimageConverter(String imageString){
        byte[] stringTobyte = Base64.decode(imageString, Base64.NO_WRAP);
        Bitmap bmp = BitmapFactory.decodeByteArray(stringTobyte, 0, stringTobyte.length);
        return bmp;
    }

}
您将调用这两个函数将图像转换为字符串,然后保存到数据库中。如下所示

String statusImage = ImageConverter.imageToStringConverter(selectedImage);
selectedImage
是您从文件中选择的位图。如果您想显示图像,请再次将字符串转换回图像。
为什么是Base64

当您有一些二进制数据要通过网络传送时, 一般来说,您不会通过将位和字节流式传输来实现这一点 导线以原始格式传输。为什么?因为有些媒体是为 流式文本。你永远不知道——有些协议可能会解释你的 二进制数据作为控制字符(如调制解调器)或二进制数据 可能会搞砸,因为基本协议可能会认为 您已经输入了一个特殊的字符组合(例如FTP) 翻译行尾)

为了解决这个问题,人们把二进制数据编码成字符。 Base64是这些类型的编码之一。为什么是64岁?因为你可以 通常依赖于在许多应用程序中存在相同的64个字符 字符集,并且您可以合理地确信您的数据 最终会在电线的另一边完好无损


从映像中获取字节数组。然后将其转换为字符串。然后将这些数据添加到您的数据库中。您能告诉我如何在上面的代码中执行此操作吗。。请我对android非常陌生…查看此链接,我已经更新了我的答案。请检查它。如果它有用,请接受它,以便其他人可以从这个答案中获得帮助。请给我简单的示例frnds。。我已经更新了,伙计。但我不明白你为什么把打扰你当作一件复杂的事情来处理,很抱歉,但是请修改我的代码。。我看到我的图片id显示在ImageView上。但m未能发送到数据库。。如果你能做到这一点,请帮助我