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 photo’s 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 /** * 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 '{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 } } }