Need help upgrading to Ionic Framework 4.0? Get assistance with our Enterprise Migration Services EXPLORE NOW


Improve this doc

Take a photo or capture video.

Requires the Cordova plugin: cordova-plugin-camera. For more info, please see the Cordova Camera Plugin Docs.

[Warning] Since IOS 10 the camera requires permissions to be placed in your config.xml add

<config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
 <string>You can take photos</string>

inside of the <platform name='ios> section



  1. Install the Cordova and Ionic Native plugins:
    $ ionic cordova plugin add cordova-plugin-camera
    $ npm install --save @ionic-native/camera@4
  2. Add this plugin to your app's module

Supported platforms


import { Camera, CameraOptions } from '@ionic-native/camera';

constructor(private camera: Camera) { }


const options: CameraOptions = {
  quality: 100,
} => {
 // imageData is either a base64 encoded string or a file URI
 // If it's base64 (DATA_URL):
 let base64Image = 'data:image/jpeg;base64,' + imageData;
}, (err) => {
 // Handle error

Instance Members


Constant for possible destination types


Convenience constant


Convenience constant


Convenience constant


Convenience constant


Convenience constant


Take a picture or video, or load one from the library.

Param Type Details
options CameraOptions

Options that you want to pass to the camera. Encoding type, quality, etc. Platform-specific quirks are described in the Cordova plugin docs.Optional

Returns: Promise<any> Returns a Promise that resolves with Base64 encoding of the image data, or the image file URI, depending on cameraOptions, otherwise rejects with an error.



Remove intermediate image files that are kept in temporary storage after calling camera.getPicture. Applies only when the value of Camera.sourceType equals Camera.PictureSourceType.CAMERA and the Camera.destinationType equals Camera.DestinationType.FILE_URI.

Returns: Promise<any>


Param Type Details
quality number

Picture quality in range 0-100. Default is 50

destinationType number

Choose the format of the return value. Defined in Camera.DestinationType. Default is FILE_URI. DATA_URL : 0, Return image as base64-encoded string (DATA_URL can be very memory intensive and cause app crashes or out of memory errors. Use FILE_URI or NATIVE_URI if possible), FILE_URI : 1, Return image file URI, NATIVE_URI : 2 Return image native URI (e.g., assets-library:// on iOS or content:// on Android)

sourceType number

Set the source of the picture. Defined in Camera.PictureSourceType. Default is CAMERA. PHOTOLIBRARY : 0, CAMERA : 1, SAVEDPHOTOALBUM : 2

allowEdit boolean

Allow simple editing of image before selection.

encodingType number

Choose the returned image file's encoding. Defined in Camera.EncodingType. Default is JPEG JPEG : 0 Return JPEG encoded image PNG : 1 Return PNG encoded image

targetWidth number

Width in pixels to scale image. Must be used with targetHeight. Aspect ratio remains constant.

targetHeight number

Height in pixels to scale image. Must be used with targetWidth. Aspect ratio remains constant.

mediaType number

Set the type of media to select from. Only works when PictureSourceType is PHOTOLIBRARY or SAVEDPHOTOALBUM. Defined in Camera.MediaType PICTURE: 0 allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType VIDEO: 1 allow selection of video only, WILL ALWAYS RETURN FILE_URI ALLMEDIA : 2 allow selection from all media types

correctOrientation boolean

Rotate the image to correct for the orientation of the device during capture.

saveToPhotoAlbum boolean

Save the image to the photo album on the device after capture.

cameraDirection number

Choose the camera to use (front- or back-facing). Defined in Camera.Direction. Default is BACK. BACK: 0 FRONT: 1

popoverOptions CameraPopoverOptions

iOS-only options that specify popover location in iPad. Defined in CameraPopoverOptions.



Param Type Details
x number
y number
width number
height number
arrowDir number

Direction the arrow on the popover should point. Defined in Camera.PopoverArrowDirection Matches iOS UIPopoverArrowDirection constants. ARROW_UP : 1, ARROW_DOWN : 2, ARROW_LEFT : 4, ARROW_RIGHT : 8, ARROW_ANY : 15