位图到整数数组?

时间:2016-06-15 18:46:05

标签: android bitmap

在我的应用程序中我有一个数据库,我存储图像。我想检索images.images在BitMap中很容易检索,但问题是如何将该BitMap图像转换为整数格式。

这是代码:

   DataBaseClass objOfDataBaseClass=new DataBaseClass(context);
    Cursor mCursor=objOfDataBaseClass.showData();//here is all data taken from dataBase

if(mCursor.moveToNext()) {

        byte[] mg=null;
        mg = mCursor.getBlob(mCursor.getColumnIndex("image"));
        Bitmap bitmap = BitmapFactory.decodeByteArray(mg, 0, mg.length);

         int[] store=?//how can i bitMap store in this array.
}

2 个答案:

答案 0 :(得分:1)

您可以使用Bitmap.getPixels方法(documentation

int width = bitmap.getWidth();
int height = bitmap.getHeight();
int[] store = new int[width * height];
bitmap.getPixels(store, 0, width, 0, 0, width, height);

答案 1 :(得分:1)

您不应存储位图本身的像素,因为位图包含未压缩格式的图像,这将导致大量数据(例如1024 x 768 x 32位为3.1 MB)。

最好将位图压缩为例如PNG并将其存储在数据库中。您可以将Bitmap.compress()用于此目的,并使用ByteArrayOutputStream将数据写入。然后,将该输出流的字节存储到您的数据库中。