2016-06-15 8 views
2

내 응용 프로그램에서 나는 이미지를 저장하는 데이터베이스가 있습니다 .i images.images를 검색하려면 easly 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. 
} 

답변

1

당신이 비트 맵 자체의 화소를 저장해서는 안 (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

Bitmap.getPixels 방법을 사용할 수

는 코드 압축되지 않은 형식으로 인해 엄청난 양의 데이터가 생성됩니다 (예 : 1024 x 768 x 32 비트는 3.1MB).

비트 맵을 예. PNG를 저장하고 데이터베이스에 저장합니다. 이를 위해 Bitmap.compress()을 사용하고 ByteArrayOutputStream을 사용하여 데이터를 쓸 수 있습니다. 그런 다음 해당 출력 스트림의 바이트를 데이터베이스에 저장하십시오.

관련 문제