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

Camera

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>
</config-file>

inside of the <platform name='ios> section

Repo: https://github.com/apache/cordova-plugin-camera

Installation

  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

Usage

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

constructor(private camera: Camera) { }

...


const options: CameraOptions = {
  quality: 100,
  destinationType: this.camera.DestinationType.FILE_URI,
  encodingType: this.camera.EncodingType.JPEG,
  mediaType: this.camera.MediaType.PICTURE
}

this.camera.getPicture(options).then((imageData) => {
 // 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

DestinationType

Constant for possible destination types

EncodingType

Convenience constant

MediaType

Convenience constant

PictureSourceType

Convenience constant

PopoverArrowDirection

Convenience constant

Direction

Convenience constant

getPicture(options)

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.

cleanup()

Platforms:iOS 

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>

CameraOptions

Param Type Details
quality number

Picture quality in range 0-100. Default is 50

(optional)
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)

(optional)
sourceType number

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

(optional)
allowEdit boolean

Allow simple editing of image before selection.

(optional)
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

(optional)
targetWidth number

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

(optional)
targetHeight number

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

(optional)
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

(optional)
correctOrientation boolean

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

(optional)
saveToPhotoAlbum boolean

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

(optional)
cameraDirection number

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

(optional)
popoverOptions CameraPopoverOptions

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

(optional)

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

API

Native

General