how to check image size less then 100kb android

前端 未结 4 836
情深已故
情深已故 2021-01-12 07:43

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

相关标签:
4条回答
  • 2021-01-12 07:53

    Just input URI from the intent and get the size of any file

    uri = data.getData();
            Cursor returnCursor = getContentResolver().query(uri, null, null, null, null);
            int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
            int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
            returnCursor.moveToFirst();
            Log.e("TAG", "Name:" + returnCursor.getString(nameIndex));
            Log.e("TAG","Size: "+Long.toString(returnCursor.getLong(sizeIndex)));
    

    It will give size in bytes, So 100kb will be 100000bytes. I think this will help you.

    0 讨论(0)
  • 2021-01-12 08:00

    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

    0 讨论(0)
  • 2021-01-12 08:10

    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

    0 讨论(0)
  • 2021-01-12 08:12
       ArrayList<String> filePaths = new ArrayList<>();
        ArrayList<String> newFilePath = new ArrayList<>();  //for storing file path which size is less than 100 KB
    
        if (imagePaths != null) {
            filePaths.addAll(imagePaths);
            for (int i = 0; i < filePaths.size(); i++) {
                File file = new File(filePaths.get(i));
                int file_size = Integer.parseInt(String.valueOf(file.length() / 1024));     //calculate size of image in KB
                if (file_size < 100)
                    newFilePath.add(filePaths.get(i));  //if file size less than 100 KB then add to newFilePath ArrayList
            }
        }
    

    Here imagePaths stores path of all images that we have selected. Then if imagePaths is not null then add all images path in filePaths. You can use this code for document type of file also.

    0 讨论(0)
提交回复
热议问题