2011-03-14 3 views
2

Я хочу, чтобы получить размер изображения в байтах, что я должен делать ..получить размер изображения в байтах

// этот код переведет меня в галерее, где мы можем выбрать любые существующие изображения

Intent i = new Intent(Intent.ACTION_PICK, 
             android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
         i.setType("image/*"); 
         startActivityForResult(i, 2); 

// этот код сниппета вернуть Ури выбранных изображений из галереи, но я хочу изображения // размер в байтах также здесь

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
       super.onActivityResult(requestCode, resultCode, data); 

       if (requestCode == 2) {// 2 for selectimage 
         // Get the data of the image selected? and upload to server 

         if (resultCode == Activity.RESULT_OK) { 
           ImageURI = data.getData(); 
           Log.d("IMAGE PATH",""+ImageURI);}}} 

спасибо ..

ответ

1
ContentResolver resolver = context.getContentResolver(); 
InputStream is = resolver.openInputStream(ImageURI); 
BitmapFactory.Options bounds = new BitmapFactory.Options(); 
BitmapFactory.decodeStream(is,null,bounds); 
int width = bounds.outWidth; 
int height = bounds.outHeight; 
int size = width * height * bytes_per_pixel 
+0

где мы получаем bytes_per_pixel в вашем коде – Balvant

+0

это 4 байта = 1 int. 3 байта для цвета и 1 байт для alpha –

+1

Вы должны добавить bounds.inJustDecodeBounds = true; перед декодированием. На вашем примере вы потеряли память в родной куче, а растровое изображение было создано и не переработано. – Maxim

Смежные вопросы