Get images thumbnail file paths

13,426

You should query for MediaStore.Images.Thumbnails.DATA. To modify your example, it would look like this.

String[] projection = {MediaStore.Images.Thumbnails.DATA};
// Create the cursor pointing to the SDCard

    Cursor cursor = this.getContentResolver().query( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
        projection, // Which columns to return
        null,       // Return all rows
        null,
        null);
// Get the column index of the Thumbnails Image ID
Log.d(TAG, "BEFORE");
int columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA);
Log.d(TAG, "AFTER1");
for(int i =0;i<cursor.getCount();i++){
    cursor.moveToPosition(i);

    Log.d("MyTag","BBABA" + i +" : " + cursor.getString(columnIndex));
}
cursor.close();

Reference: How to get imagepath from thumbnail path of a image?

Share:
13,426
idish
Author by

idish

I'm here to improve my knowledge on C#, help the community, and learn some other stuff related to programming.

Updated on June 04, 2022

Comments

  • idish
    idish almost 2 years

    I'm trying to get the thumnail paths, not the bitmaps objects.
    When I query for these, some of the thumbnail paths are null for some reason. (I have 1028 thumbnail images in my device, the cursor length is indeed 1028, but still returning nulls) I know there are 1028 thumbnail images because I checked. Here's my code:

         String[] projection = {MediaStore.Images.Thumbnails._ID};
      // Create the cursor pointing to the SDCard
    
      cursor = this.getContentResolver().query( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
              projection, // Which columns to return
              null,       // Return all rows
              null,
              MediaStore.Images.Thumbnails.IMAGE_ID);
      // Get the column index of the Thumbnails Image ID
      Log.d(Global.TAG, "BEFORE");
      columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID);
      Log.d(Global.TAG, "AFTER1");
      for(int i =0;i<cursor.getCount();i++){
          cursor.moveToPosition(i);
    
          Log.d("MyTag","BBABA" + i +" : " + getThumbnailPathForLocalFile(cursor.getLong(columnIndex)));
      }
      cursor.close();
    

    My getThumbnailPathForLocalFile:

        String getThumbnailPathForLocalFile(long fileId)
     {
        // Log.d(Global., msg)
         Cursor thumbCursor = null;
         try
         {
             thumbCursor = this.getContentResolver().
                     query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
                     , null
                     , MediaStore.Images.Thumbnails.IMAGE_ID + " = " + fileId+ " AND "
                       + MediaStore.Images.Thumbnails.KIND + " = "
                       + MediaStore.Images.Thumbnails.MINI_KIND , null, null);
    
             if(thumbCursor.moveToFirst())
             {
                 // the path is stored in the DATA column
                 int dataIndex = thumbCursor.getColumnIndexOrThrow( MediaStore.MediaColumns.DATA );
                 String thumbnailPath = thumbCursor.getString(dataIndex);
                 return thumbnailPath;
             }
         }
         finally
         {
             if(thumbCursor != null)
             {
                 thumbCursor.close();
             }
         }
    
         return null;
     }
    

    Here's my logcat: http://pastebin.com/UZLZF9Pg

    After checking, I see that the ids I send are just like the index of the for loop. I'm not even sure that my code is supposed to work, so any other code will be great.

  • idish
    idish over 10 years
    This is great, works!!! Thank you so much, I've been looking so much for this solution :)
  • idish
    idish over 10 years
    Hey, hopefully you could help me with another little question: I've just removed all my gallery images, and then took around 12 images with the camera. Afterwards, I entered the Gallery, and saw the thumbnails display nicely. However, when I entered my app to display those thumbnails, I see none. After looking the the .Thubnails folder in the DCIM, there are no jpg files at all, but only one weird file that weights 10.9 MB. Do you know why my .Thumbnails folder doesn't show my thumbnails?
  • yogurtearl
    yogurtearl over 10 years
    @idish Please open that as a separate question and provide more detail ( what is the name of the 'Weird file'), also phone details and OS version.
  • Allen Vork
    Allen Vork about 8 years
    I find out that only a few images has thumbnail.I don't know why