App & Flow is a Montreal-based React Native engineering and consulting studio. We partner with the world’s top companies and are recommended by Expo. Need a hand? Let’s build together. [email protected]
This library exposes the rear camera's characteristics such as the sensor size, the focal length and the image resolution.
On Android, the Camera2 module is used to get the camera characteristics programmatically.
On iOS, there is no accessible module to do so (see https://stackoverflow.com/questions/13190932/how-to-find-out-focal-length-of-camera-in-ios-and-what-is-the-sensor-height for the existing work around), therefore, the values returned by this library are hardcoded here: https://github.com/AppAndFlow/expo-camera-characteristics/blob/main/src/iPhoneSpecs.ts. We'll try to maintain that list of devices up to date as much as possible.
For Expo SDK <= 48 use <= expo-camera-characteristics 1.0.0
This library needs expo-device
for iOS.
npx expo install @appandflow/expo-camera-characteristics expo-device
This package cannot be used in the "Expo Go" app because it requires custom native code.
After installing this npm package, add the config plugin to the plugins
array of your app.json
or app.config.js
:
{
"expo": {
"plugins": [["@appandflow/expo-camera-characteristics", {}]]
}
}
And finally, rebuild your app as described in the "Adding custom native code" guide.
npx expo prebuild
import * as expoCameraCharacteristics from "@appandflow/expo-camera-characteristics";
const cameraCharacteristics: {
focalLength: number;
sensorSize: {
height: number;
width: number;
};
imageResolution: {
height: number;
width: number;
};
} = expoCameraCharacteristics.getCameraCharacteristics();