package icon

Exif Thumbnail Adder

Add thumbnail in the EXIF tag of JPEG picture not having one (batch processing)
New in version 1.0.0
1.0.0
- Add support for Android 14 (& set targetSdk to 34)
- exiv2: update to 0.28.2 & expat to 2.6.2
- update all gradle dependencies to latest version
- add spanish translation (thanks to jose-454 & l.a.r.monteon1989)
- Note: if you run on AOSP or on devices without Google apps, you may loose the GPS information inside your files (at least on emulator image for Android 13). See project homepage for more information.

0.9.19
- libexif: skip processing of pictures having XMP metadata
- pixymeta:
This application for android devices searches for pictures (JPEG) on your device and adds a thumbnail if they don't have one yet. Thumbnails are added to the EXIF metadata structure.

It is designed to work from android Oreo (android 8, SDK 26).

Please report issues here: https://github.com/tenzap/exif-thumbnail-adder/issues

For more information, some known facts and how you may contribute, refer to the [project homepage][1].

Rationale

On some smartphones, when wanting to import pictures to Windows (or any device/operating system supporting MTP or PTP protocols), I noticed the pictures may not display a thumbnail in the import wizard (whether through the Photos app, or through the Windows Explorer import feature).

There are two possible reasons for that behaviour. First, the thumbnail is not present in the picture, usually because the app that created the picture didn't add a thumbnail. Second, there is a thumbnail but it is ignored because some EXIF tags are missing.


Features

- Add thumbnail to pictures (JPEG) that don't yet have one
- Lanczos algorithm to downsample picture thanks to [FFmpeg's swscale library][2] for best results.
- Select one or more folders to scan from any storage (internal, SDCard...). For example DCIM, Pictures...
- Exclude one subdirectory from selected directories
- Preserve timestamps of the pictures
- Processing log
- Synchronize deleted files in the source directory to the backup and working directory (so that you don't keep in the backup folder pictures you don't have anymore in the source folder)
- Conservative default options (backup pictures, skip corrupt files)
- Install app on internal storage or external storage
- Default EXIF library: [Exiv2][3].
- Alternative libraries: Android-Exif-Extended, libexif, pixymeta-android. See known facts on project page to learn more on benefits and drawbacks of each library.
- Settings:
 - Rotate the thumbnail
 - Replace existing thumbnail
 - Backup of original pictures (backup is never overwritten by the app once created if you choose to add the thumbnail to the input file in its initial location)
 - Skip pictures having malformed metadata (this can be disabled to process also files having corrupt tags)
 - Replace picture in place or write new picture to another directory

Requested permissions

- WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE, READ_MEDIA_IMAGES
- MANAGE_EXTERNAL_STORAGE
- ACCESS_MEDIA_LOCATION
- POST_NOTIFICATIONS
- get more details on the project homepage

Installation

- Prerequisites: minimum android Oreo (android 8, SDK 26). App was tested up to Android 11.
- Download it through F-Droid app [here][4]
- Download the APK from the [release page][5]

License

GPL-3.0 (see "COPYING" file on project homepage)

URLs

- [1]: https://github.com/tenzap/exif-thumbnail-adder
- [2]: https://ffmpeg.org/libswscale.html
- [3]: https://www.exiv2.org
- [4]: https://f-droid.org/packages/com.exifthumbnailadder.app
- [5]: https://github.com/tenzap/exif-thumbnail-adder/releases

Donate

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 1.0.0 (724) suggested Added on May 09, 2024

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • read locations from your media collection
      Allows the app to read locations from your media collection.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "dataSync"
      Allows the app to make use of foreground services with the type "dataSync"
    • android.permission.MANAGE_EXTERNAL_STORAGE
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
      (12L)
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
      (10)
    • com.exifthumbnailadder.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 24 MiB PGP Signature | Build Log

  • Version 0.9.19 (679) - Added on Apr 13, 2023

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • read locations from your media collection
      Allows the app to read locations from your media collection.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • android.permission.FOREGROUND_SERVICE_TYPE_DATA_SYNC
    • android.permission.MANAGE_EXTERNAL_STORAGE
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
      (12L)
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
      (10)
    • com.exifthumbnailadder.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 21 MiB PGP Signature | Build Log

  • Version 0.9.18 (536) - Added on Mar 20, 2023

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • read locations from your media collection
      Allows the app to read locations from your media collection.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • run foreground service
      Allows the app to make use of foreground services.
    • android.permission.FOREGROUND_SERVICE_TYPE_DATA_SYNC
    • android.permission.MANAGE_EXTERNAL_STORAGE
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
      (12L)
    • read image files from shared storage
      Allows the app to read image files from your shared storage.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
      (10)
    • com.exifthumbnailadder.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 21 MiB PGP Signature | Build Log