You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

18 KiB

cordova-plugin-camera

Build Status

이 플러그인 시스템의 이미지 라이브러리에서 이미지를 선택 및 사진 촬영을 위한 API를 제공 하는 글로벌 navigator.camera 개체를 정의 합니다.

개체 navigator 글로벌 범위 첨부 아니에요 때까지 사용할 수 있는 deviceready 이벤트 후.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(navigator.camera);
}

설치

cordova plugin add cordova-plugin-camera

API

  • 카메라
    • navigator.camera.getPicture(success, fail, options)
    • CameraOptions
    • CameraPopoverHandle
    • CameraPopoverOptions
    • navigator.camera.cleanup

navigator.camera.getPicture

카메라를 사용 하 여 사진을 걸립니다 또는 소자의 이미지 갤러리에서 사진을 검색 합니다. 이미지는 성공 콜백에 전달 base64 인코딩된 문자열 또는 URI로 이미지 파일에 대 한. 방법 자체는 파일 선택 popover 위치를 사용할 수 있는 CameraPopoverHandle 개체를 반환 합니다.

navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);

설명

Camera.getPicture 함수 스냅 사진을 사용자가 소자의 기본 카메라 응용 프로그램을 엽니다. 이 문제는 Camera.sourceType Camera.PictureSourceType.CAMERA 경우 기본적으로 발생 합니다. 일단 사용자 스냅 사진, 카메라 응용 프로그램 종료 하 고 응용 프로그램 복원 됩니다.

Camera.sourceTypeCamera.PictureSourceType.PHOTOLIBRARY 또는 Camera.PictureSourceType.SAVEDPHOTOALBUM, 대화 상자가 사용자가 기존 이미지를 선택할 수 있도록 표시 됩니다. camera.getPicture 함수는 장치 방향 변경 될 때 이미지 선택 대화 상자, 예를 들어, 위치를 변경 하려면 사용할 수 있는 CameraPopoverHandle 개체를 반환 합니다.

반환 값은 cameraSuccess 콜백 함수 지정된 cameraOptions에 따라 다음 형식 중 하나에 전송 됩니다.

  • A String base64 인코딩된 사진 이미지를 포함 합니다.

  • A String 로컬 저장소 (기본값)의 이미지 파일 위치를 나타내는.

할 수 있는 당신이 원하는대로 인코딩된 이미지 또는 URI, 예를 들면:

  • 렌더링 이미지는 <img> 아래 예제와 같이 태그

  • 로컬로 데이터를 저장 ( LocalStorage , Lawnchair, 등.)

  • 원격 서버에 데이터 게시

참고: 더 새로운 장치에 사진 해상도 아주 좋은. 소자의 갤러리에서 선택 된 사진 품질 매개 변수를 지정 하는 경우에 낮은 품질에 관하여 하지는. 일반적인 메모리 문제를 피하기 위해 DATA_URL 보다 FILE_URI Camera.destinationType 설정.

지원 되는 플랫폼

예를 들어

촬영 및 base64 인코딩 이미지로 검색:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
    destinationType: Camera.DestinationType.DATA_URL
});

function onSuccess(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
}

function onFail(message) {
    alert('Failed because: ' + message);
}

촬영 하 고 이미지의 파일 위치를 검색:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
    destinationType: Camera.DestinationType.FILE_URI });

function onSuccess(imageURI) {
    var image = document.getElementById('myImage');
    image.src = imageURI;
}

function onFail(message) {
    alert('Failed because: ' + message);
}

환경 설정 (iOS)

  • CameraUsesGeolocation (boolean, 기본값: false)입니다. 캡처 Jpeg, EXIF 헤더에 지리적 데이터를 true로 설정 합니다. 이 경우 위치 정보 사용 권한에 대 한 요청을 일으킬 것 이다 true로 설정 합니다.

    <preference name="CameraUsesGeolocation" value="false" />
    

아마존 화재 OS 단점

아마존 화재 OS 의도 사용 하 여 이미지 캡처 장치에서 카메라 활동을 시작 하 고 낮은 메모리와 휴대 전화에 코르 도우 바 활동 살해 수 있습니다. 코르도바 활동 복원 되 면이 시나리오에서는 이미지가 나타나지 않을 수 있습니다.

안 드 로이드 단점

안 드 로이드 의도 사용 하 여 이미지 캡처 장치에서 카메라 활동을 시작 하 고 낮은 메모리와 휴대 전화에 코르 도우 바 활동 살해 수 있습니다. 코르도바 활동 복원 되 면이 시나리오에서는 이미지가 나타나지 않을 수 있습니다.

브라우저 만지면

수 base64 인코딩 이미지로 사진을 반환 합니다.

파이어 폭스 OS 단점

카메라 플러그인은 현재 웹 활동를 사용 하 여 구현.

iOS 단점

자바 alert()를 포함 하 여 콜백 함수 중 하나에 문제가 발생할 수 있습니다. 포장 허용 iOS 이미지 피커 또는 popover를 완벽 하 게 경고를 표시 하기 전에 닫습니다 setTimeout() 내에서 경고:

setTimeout(function() {
    // do your thing here!
}, 0);

Windows Phone 7 단점

장치 Zune 통해 연결 된 동안 네이티브 카메라 응용 프로그램을 호출 하면 작동 하지 않습니다 하 고 오류 콜백 트리거합니다.

Tizen 특수

Camera.DestinationType.FILE_URIdestinationTypeCamera.PictureSourceType.PHOTOLIBRARYsourceType Tizen 지원.

CameraOptions

카메라 설정을 사용자 지정 하는 선택적 매개 변수.

{ quality : 75,
  destinationType : Camera.DestinationType.DATA_URL,
  sourceType : Camera.PictureSourceType.CAMERA,
  allowEdit : true,
  encodingType: Camera.EncodingType.JPEG,
  targetWidth: 100,
  targetHeight: 100,
  popoverOptions: CameraPopoverOptions,
  saveToPhotoAlbum: false };
  • 품질: 범위 0-100, 100은 파일 압축에서 손실 없이 일반적으로 전체 해상도 저장된 된 이미지의 품질. 기본값은 50입니다. (수) (Note 카메라의 해상도 대 한 정보는 사용할 수 없습니다.)

  • destinationType: 반환 값의 형식을 선택 합니다. 기본값은 FILE_URI입니다. 에 정의 된 navigator.camera.DestinationType (수)

    Camera.DestinationType = {
        DATA_URL : 0,      // Return image as base64-encoded string
        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: 그림의 소스를 설정 합니다. 기본값은 카메라입니다. 에 정의 된 navigator.camera.PictureSourceType (수)

    Camera.PictureSourceType = {
        PHOTOLIBRARY : 0,
        CAMERA : 1,
        SAVEDPHOTOALBUM : 2
    };
    
  • allowEdit: 선택 하기 전에 이미지의 간단한 편집을 허용 합니다. (부울)

  • encodingType: 반환 된 이미지 파일의 인코딩을 선택 합니다. 기본값은 JPEG입니다. 에 정의 된 navigator.camera.EncodingType (수)

    Camera.EncodingType = {
        JPEG : 0,               // Return JPEG encoded image
        PNG : 1                 // Return PNG encoded image
    };
    
  • targetWidth: 스케일 이미지를 픽셀 너비. TargetHeight와 함께 사용 해야 합니다. 가로 세로 비율이 일정 하 게 유지 합니다. (수)

  • targetHeight: 스케일 이미지를 픽셀 단위로 높이. TargetWidth와 함께 사용 해야 합니다. 가로 세로 비율이 일정 하 게 유지 합니다. (수)

  • mediaType:에서 선택 미디어 유형을 설정 합니다. 때에 작동 PictureSourceTypePHOTOLIBRARY 또는 SAVEDPHOTOALBUM . 에 정의 된 nagivator.camera.MediaType (수)

    Camera.MediaType = {
        PICTURE: 0,    // allow selection of still pictures only. 기본입니다. 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: 캡처 도중 장치의 방향에 대 한 해결 하기 위해 이미지를 회전 합니다. (부울)

  • saveToPhotoAlbum: 캡처 후 장치에서 사진 앨범에 이미지를 저장 합니다. (부울)

  • popoverOptions: iPad에 popover 위치를 지정 하는 iOS 전용 옵션. 에 정의 된CameraPopoverOptions.

  • cameraDirection: (앞 이나 뒤로-연결)를 사용 하 여 카메라를 선택 하십시오. 기본값은 다시. 에 정의 된 navigator.camera.Direction (수)

    Camera.Direction = {
        BACK : 0,      // Use the back-facing camera
        FRONT : 1      // Use the front-facing camera
    };
    

아마존 화재 OS 단점

  • 어떤 cameraDirection 다시 연결 사진에 결과 값.

  • 무시는 allowEdit 매개 변수.

  • Camera.PictureSourceType.PHOTOLIBRARY그리고 Camera.PictureSourceType.SAVEDPHOTOALBUM 둘 다 동일한 사진 앨범을 표시 합니다.

안 드 로이드 단점

  • 어떤 cameraDirection 다시 연결 사진에 결과 값.

  • 안 드 로이드도 사용 자르기 활동 allowEdit, 비록 작물 작업과 실제로 코르도바, 유일 하 게 작품 지속적으로 구글 플러스 사진 응용 프로그램과 함께 번들로 제공 하는 것은 등을 맞댄 자른된 이미지를 전달 해야 합니다. 다른 작물은 작동 하지 않을 수 있습니다.

  • Camera.PictureSourceType.PHOTOLIBRARY그리고 Camera.PictureSourceType.SAVEDPHOTOALBUM 둘 다 동일한 사진 앨범을 표시 합니다.

블랙베리 10 단점

  • 무시는 quality 매개 변수.

  • 무시는 allowEdit 매개 변수.

  • Camera.MediaType지원 되지 않습니다.

  • 무시는 correctOrientation 매개 변수.

  • 무시는 cameraDirection 매개 변수.

파이어 폭스 OS 단점

  • 무시는 quality 매개 변수.

  • Camera.DestinationType무시 되 고 1 (이미지 파일 URI)

  • 무시는 allowEdit 매개 변수.

  • 무시는 PictureSourceType 매개 변수 (사용자가 선택 그것 대화 창에서)

  • 무시 하는encodingType

  • 무시는 targetWidthtargetHeight

  • Camera.MediaType지원 되지 않습니다.

  • 무시는 correctOrientation 매개 변수.

  • 무시는 cameraDirection 매개 변수.

iOS 단점

  • 설정 quality 일부 장치 메모리 오류를 피하기 위해 50 아래.

  • 사용 하는 경우 destinationType.FILE_URI , 사진 응용 프로그램의 임시 디렉터리에 저장 됩니다. 응용 프로그램이 종료 될 때 응용 프로그램의 임시 디렉터리의 내용은 삭제 됩니다.

Tizen 특수

  • 지원 되지 않는 옵션

  • 항상 파일 URI를 반환 합니다.

Windows Phone 7, 8 특수

  • 무시는 allowEdit 매개 변수.

  • 무시는 correctOrientation 매개 변수.

  • 무시는 cameraDirection 매개 변수.

  • 무시는 saveToPhotoAlbum 매개 변수. 중요: 모든 이미지 API wp7/8 코르도바 카메라로 촬영 항상 복사 됩니다 휴대 전화의 카메라 롤에. 사용자의 설정에 따라이 또한 그들의 OneDrive에 자동 업로드 이미지는 의미. 이 잠재적으로 이미지는 당신의 애플 리 케이 션을 위한 보다 넓은 청중에 게 사용할 수 있는 의미. 이 경우 응용 프로그램에 대 한 차단, 당신은 msdn에 설명 대로 단말기를 구현 해야 합니다: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394006.aspx 수 있습니다 또한 의견 또는 이슈 트래커 에서 업-투표 관련된 문제

  • 무시는 mediaType 속성을 cameraOptions 으로 Windows Phone SDK PHOTOLIBRARY에서 비디오를 선택 하는 방법을 제공 하지 않습니다.

CameraError

오류 메시지를 제공 하는 onError 콜백 함수.

function(message) {
    // Show a helpful message
}

설명

  • 메시지: 메시지는 장치의 네이티브 코드에 의해 제공 됩니다. (문자열)

cameraSuccess

이미지 데이터를 제공 하는 onSuccess 콜백 함수.

function(imageData) {
    // Do something with the image
}

설명

  • imageData: Base64 인코딩은 이미지 데이터, 또는 이미지 파일에 따라 URI의 cameraOptions 적용. (문자열)

예를 들어

// Show image
//
function cameraCallback(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
}

CameraPopoverHandle

navigator.camera.getPicture에 의해 만들어진 popover 대화에 대 한 핸들.

설명

  • setPosition: Set the position of the popover. Takes the CameraPopoverOptions that specify the new position.

지원 되는 플랫폼

예를 들어

 var cameraPopoverHandle = navigator.camera.getPicture(onSuccess, onFail,
     { destinationType: Camera.DestinationType.FILE_URI,
       sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
       popoverOptions: new CameraPopoverOptions(300, 300, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY)
     });

 // Reposition the popover if the orientation changes.
 window.onorientationchange = function() {
     var cameraPopoverOptions = new CameraPopoverOptions(0, 0, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY);
     cameraPopoverHandle.setPosition(cameraPopoverOptions);
 }

CameraPopoverOptions

iOS 전용 매개 변수 iPad의 보관 함 또는 앨범에서 이미지를 선택 하면 앵커 요소 위치와 화살표의 방향으로 popover 지정 하는.

{ x : 0,
  y :  32,
  width : 320,
  height : 480,
  arrowDir : Camera.PopoverArrowDirection.ARROW_ANY
};

설명

  • x: x는 popover 앵커는 화면 요소의 픽셀 좌표. (수)

  • y: y 픽셀 좌표는 popover 앵커는 화면 요소입니다. (수)

  • : 폭 (픽셀)는 popover 앵커는 화면 요소. (수)

  • 높이: 높이 (픽셀)는 popover 앵커는 화면 요소. (수)

  • arrowDir: 방향 화살표는 popover 가리켜야 합니다. 에 정의 된 Camera.PopoverArrowDirection (수)

        Camera.PopoverArrowDirection = {
            ARROW_UP : 1,        // matches iOS UIPopoverArrowDirection constants
            ARROW_DOWN : 2,
            ARROW_LEFT : 4,
            ARROW_RIGHT : 8,
            ARROW_ANY : 15
        };
    

참고는 popover의 크기 조정 화살표 방향 및 화면 방향 변경 될 수 있습니다. 앵커 요소 위치를 지정 하는 경우 방향 변경에 대 한 계정에 있는지 확인 합니다.

navigator.camera.cleanup

제거 임시 저장소에서 카메라로 찍은 사진을 중간.

navigator.camera.cleanup( cameraSuccess, cameraError );

설명

camera.getPicture를 호출한 후 임시 저장소에 보관 됩니다 중간 이미지 파일을 제거 합니다. Camera.sourceType 값은 Camera.PictureSourceType.CAMERACamera.destinationTypeCamera.DestinationType.FILE_URI 때만 적용 됩니다..

지원 되는 플랫폼

예를 들어

navigator.camera.cleanup(onSuccess, onFail);

function onSuccess() {
    console.log("Camera cleanup success.")
}

function onFail(message) {
    alert('Failed because: ' + message);
}