cymera API
사진 촬영과 편집 기능이 필요할 때, 간편하게 싸이메라를 연동해 보세요! 각 OS별로 제공하는 방법을 통해 외부 App에서 싸이메라의 기능을 바로 연결할 수 있습니다.
Android에서 제공하는 Intents and Intent Filters을 사용하여 외부 App에서 싸이메라의 촬영 기능을 호출하며,
싸이메라 지정 호출 방식과 Broadcast 방식 두 가지 중에 선택하여 사용하실 수 있습니다.
싸이메라 지정호출
<Action 정의>
com.cyworld.camera.action.IMAGE_CAPTURE
<Input Parameters>
파라미터 이름 | 타입 | 필수여부 | 설명 | 예시 |
output_dir_name | String | O | 저장 폴더 명 | My app |
output_pic_width | int (px) | X | 출력 이미지 너비 | 600 |
output_pic_height | int (px) | X | 출력 이미지 높이 | 600 |
crop | boolean | X | 이미지 스케일 타입 - true : 요청 사이즈에 맞게 크롭 (center) - false : 요청 사이즈 안에 들어가도록 리사이징 | true |
* Optional parameter를 입력하지 않는 경우 원본을 기준으로 이미지 생성
<Output Parameters>
파라미터 이름 | 타입 | 설명 |
result_code | int | 결과값 |
picture_uri | Uri | 생성된 이미지 Uri 정보 |
<Result code>
코드 | 설명 |
0 | 요청한 사이즈로 이미지가 만들어짐 |
1 | 요청한 사이즈 중 width 값에 맞춰 이미지가 만들어짐 |
2 | 요청한 사이즈 중 height 값에 맞춰 이미지가 만들어짐 |
<Sample Code>
(1) 인텐트 호출 |
Intent intent = new Intent(); intent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET ) ComponentName compName = new ComponentName( "com.cyworld.camera" , "com.cyworld.cymera.CameraMain" ); intent.setComponent(compName); intent.setAction( "com.cyworld.camera.action.IMAGE_CAPTURE" ); intent.putExtra( "output_dir_name" , "My app" ); intent.putExtra( "output_pic_width" , 640 ); intent.putExtra( "output_pic_height" , 480 ); intent.putExtra( “crop”, true ); startActivityForResult(intent, REQ_CODE); |
(2) 인텐트 호출에 대한 결과값을 리턴 받는 부분 |
//Activity 내의 onActivityResult내에 위치 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case REQ_CODE: if (data != null) { int rcode = data.getIntExtra( “result_code” ); // 결과 코드 Uri uri = data.getParcelableExtra( “picture_uri” );// 결과 Uri } break; } } else if (resultCode == RESULT_CANCEL) { switch (requestCode) { case REQ_CODE: // Cancel에 대한 처리 break; } } } |
Broadcast
아래의 Action 과 Mime type 을 지정하여 호출하며, Application Chooser에 싸이메라가 추가되어 촬영 기능이 연동됩니다.
<Action 정의>
Intent.ACTION_SEND
Intent.ACTION_VIEW
* 위 목록에서 택 1
<Mime type>
“image/jpg”
“image/png”
“image/*"
* 위 목록에서 택 1
<Sample Code>
(1) 인텐트 호출 1 |
Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("image/png"); startActivity(intent); |
(2) 인텐트 호출 2 |
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setType("image/*"); startActivity(intent); |
싸이메라 API문의 : help@cymera.com