Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to check image size less then 100kb android

I am trying to get image from gallery and setting up it on ImageView , Hear is okay well i get and set image on ImageView, but now i want to check image size of selected image in kb so i set the validaion for image uploading. Please anyone can suggest me how to check selected image size less then 100kb or not?, Hear is my code for image selecting and setting it.

Choosing Image useing Intent

 Intent iv = new Intent(
                    Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

            startActivityForResult(iv, RESULT_LOAD_IMAGE);

and get Image Result code ..

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

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        picturePath = cursor.getString(columnIndex);
        cursor.close();
        Bitmap bmp=BitmapFactory.decodeFile(picturePath);

        ivLogo.setImageBitmap(bmp);
            uploadNewPic();
    }
}
like image 440
Qutbuddin Bohra Avatar asked Mar 19 '15 04:03

Qutbuddin Bohra


Video Answer


2 Answers

to know the size is less then 100kb. you should know the image size to compare. there is some method to know the size of bitmap

method 1

 Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), 
        R.drawable.ic_launcher);


 Bitmap bitmap = bitmapOrg;
 ByteArrayOutputStream stream = new ByteArrayOutputStream();   
 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);   
 byte[] imageInByte = stream.toByteArray(); 
 long lengthbmp = imageInByte.length; 

method 2

 File file = new File("/sdcard/Your_file");
 long length = file.length() / 1024; // Size in KB

For more Study

go for http://developer.android.com/reference/android/graphics/Bitmap.html#getByteCount%28%29

like image 107
Sukhwant Singh Grewal Avatar answered Oct 17 '22 03:10

Sukhwant Singh Grewal


Get file size as

File img = new File(picturePath);
int length = img.length();

it will return size in bytes. you can convert byte into kb

like image 35
Arun Kumar Avatar answered Oct 17 '22 05:10

Arun Kumar