@lodev09/react-native-exify
v1.0.2
Published
Read and write exif data from/into an image
Readme
React Native Exify
A simple library to read and write image Exif metadata for your React Native Apps. 🏷️
Features
- Read Exif data from an image
- Write Exif data into an image
- Tags are typed and standardized
- Works with Expo and bare React Native projects
- Supports New Architecture (Turbo Module)
Installation
yarn add @lodev09/react-native-exifyUsage
import * as Exify from '@lodev09/react-native-exify';Reading Exif 🔍
const uri = 'file://path/to/image.jpg'
const tags = await Exify.read(uri)
console.log(tags)[!IMPORTANT] The
urimust include a scheme (e.g.file://,ph://,content://). Bare file paths like/var/mobile/.../image.jpgare not supported and will throw an error.
[!NOTE] On Android 10+, GPS data is redacted from
content://URIs by default. The library automatically requestsACCESS_MEDIA_LOCATIONat runtime to access unredacted location data. Your app must have media read access (READ_MEDIA_IMAGESorREAD_EXTERNAL_STORAGE) granted first. If you're already using a library likeexpo-media-librarythat grantsACCESS_MEDIA_LOCATION, exify will use the existing grant.
Writing Exif ✍️
import type { ExifTags } from '@lodev09/react-native-exify';
const uri = 'file://path/to/image.jpg'
const newTags: ExifTags = {
GPSLatitude: 69.69,
GPSLongitude: 69.69,
UserComment: 'Someone wrote GPS here!',
}
const result = await Exify.write(uri, newTags)
console.log(result.tags)[!NOTE] On iOS, writing exif into an Asset file will duplicate the image. iOS does not allow writing exif into an Asset file directly. If you're getting the photo from a camera, write it into the output file first before saving to the Asset library!
Example
See example for more detailed usage.
Built with True Sheet
The example app uses @lodev09/react-native-true-sheet for the image picker UI. Check it out!
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
Made with ❤️ by @lodev09
