programing tip

byte []로 드로어 블

itbloger 2020. 12. 27. 10:26
반응형

byte []로 드로어 블


웹의 이미지가 ImageView. 매우 작고 (파비콘) SQLite 데이터베이스에 저장하고 싶습니다. Drawable에서 받을 수 mImageView.getDrawable()있지만 다음에 무엇을해야할지 모르겠습니다. DrawableAndroid 수업을 완전히 이해하지 못합니다 .

다음 Bitmap과 같이 바이트 배열을 얻을 수 있다는 것을 알고 있습니다 .

Bitmap defaultIcon = BitmapFactory.decodeStream(in);

ByteArrayOutputStream stream = new ByteArrayOutputStream();
defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, stream);

byte[] bitmapdata = stream.toByteArray();

그러나 어떻게 바이트 배열을 얻 Drawable습니까?


Drawable d; // the drawable (Captain Obvious, to the rescue!!!)
Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitmapdata = stream.toByteArray();

모두에게 감사하고 이것이 내 문제를 해결했습니다.

Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.my_pic);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitMapData = stream.toByteArray();

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tester);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitMapData = stream.toByteArray();

Drawable이 BitmapDrawable이면 이것을 시도 할 수 있습니다.

long getSizeInBytes(Drawable drawable) {
    if (drawable == null)
        return 0;

    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
    return bitmap.getRowBytes() * bitmap.getHeight();
}

Bitmap.getRowBytes () 는 비트 맵의 ​​픽셀에서 행 사이의 바이트 수를 반환합니다.

자세한 내용은이 프로젝트를 참조하십시오 : LazyList


File myFile = new File(selectedImagePath);

byte [] mybytearray  = new byte [filelenghth];

BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(myFile));

bis1.read(mybytearray,0,mybytearray.length);

이제 이미지가 bytearray에 저장됩니다 ..

참조 URL : https://stackoverflow.com/questions/4435806/drawable-to-byte

반응형