react-native-vision-camera/package/src/PhotoFile.ts

169 lines
4.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Orientation } from './Orientation'
import type { TemporaryFile } from './TemporaryFile'
export interface TakePhotoOptions {
/**
* Indicates how photo quality should be prioritized against speed.
*
* * `"quality"` Indicates that photo quality is paramount, even at the expense of shot-to-shot time
* * `"balanced"` Indicates that photo quality and speed of delivery are balanced in priority
* * `"speed"` Indicates that speed of photo delivery is most important, even at the expense of quality
*
* @default "balanced"
*/
qualityPrioritization?: 'quality' | 'balanced' | 'speed'
/**
* Whether the Flash should be enabled or disabled
*
* @default "auto"
*/
flash?: 'on' | 'off' | 'auto'
/**
* Specifies whether red-eye reduction should be applied automatically on flash captures.
*
* @default false
*/
enableAutoRedEyeReduction?: boolean
/**
* Indicates whether still image stabilization will be enabled when capturing the photo
*
* @default false
*/
enableAutoStabilization?: boolean
/**
* Specifies whether the photo output should use content aware distortion correction on this photo request.
* For example, the algorithm may not apply correction to faces in the center of a photo, but may apply it to faces near the photos edges.
*
* @platform iOS
* @default false
*/
enableAutoDistortionCorrection?: boolean
/**
* Whether to play the default shutter "click" sound when taking a picture or not.
*
* @default true
*/
enableShutterSound?: boolean
/**
* Whether to run the pre-capture sequence to properly lock AF, AE and AWB values.
* Enabling this results in greater photos, but might not work on some devices.
*
* @platform Android
* @default false
*/
enablePrecapture?: boolean
}
/**
* Represents a Photo taken by the Camera written to the local filesystem.
*
* See {@linkcode Camera.takePhoto | Camera.takePhoto()}
*/
export interface PhotoFile extends TemporaryFile {
/**
* The width of the photo, in pixels.
*/
width: number
/**
* The height of the photo, in pixels.
*/
height: number
/**
* Whether this photo is in RAW format or not.
*/
isRawPhoto: boolean
/**
* Display orientation of the photo, relative to the Camera's sensor orientation.
*
* Note that Camera sensors are landscape, so e.g. "portrait" photos will have a value of "landscape-left", etc.
*/
orientation: Orientation
/**
* Whether this photo is mirrored (selfies) or not.
*/
isMirrored: boolean
thumbnail?: Record<string, unknown>
/**
* Metadata information describing the captured image. (iOS only)
*
* @see [AVCapturePhoto.metadata](https://developer.apple.com/documentation/avfoundation/avcapturephoto/2873982-metadata)
*
* @platform iOS
*/
metadata?: {
/**
* Orientation of the EXIF Image.
*
* * 1 = 0 degrees: the correct orientation, no adjustment is required.
* * 2 = 0 degrees, mirrored: image has been flipped back-to-front.
* * 3 = 180 degrees: image is upside down.
* * 4 = 180 degrees, mirrored: image has been flipped back-to-front and is upside down.
* * 5 = 90 degrees: image has been flipped back-to-front and is on its side.
* * 6 = 90 degrees, mirrored: image is on its side.
* * 7 = 270 degrees: image has been flipped back-to-front and is on its far side.
* * 8 = 270 degrees, mirrored: image is on its far side.
*/
Orientation: number
/**
* @platform iOS
*/
DPIHeight: number
/**
* @platform iOS
*/
DPIWidth: number
/**
* Represents any data Apple cameras write to the metadata
*
* @platform iOS
*/
'{MakerApple}'?: Record<string, unknown>
'{TIFF}': {
ResolutionUnit: number
Software: string
Make: string
DateTime: string
XResolution: number
/**
* @platform iOS
*/
HostComputer?: string
Model: string
YResolution: number
}
'{Exif}': {
DateTimeOriginal: string
ExposureTime: number
FNumber: number
LensSpecification: number[]
ExposureBiasValue: number
ColorSpace: number
FocalLenIn35mmFilm: number
BrightnessValue: number
ExposureMode: number
LensModel: string
SceneType: number
PixelXDimension: number
ShutterSpeedValue: number
SensingMethod: number
SubjectArea: number[]
ApertureValue: number
SubsecTimeDigitized: string
FocalLength: number
LensMake: string
SubsecTimeOriginal: string
OffsetTimeDigitized: string
PixelYDimension: number
ISOSpeedRatings: number[]
WhiteBalance: number
DateTimeDigitized: string
OffsetTimeOriginal: string
ExifVersion: string
OffsetTime: string
Flash: number
ExposureProgram: number
MeteringMode: number
}
}
}