반응형

안드로이드 폰에서 기본으로 제공하는 기본 카메라 및 갤러리

불러보기 및 이미지 Bitmap 처리

 

Button btnCamera = (Button)FindViewById(R.id.btnCamera)

Button btnGallery = (Button)FindViewById(R.id.btnGallery)

 

카메라와 갤러리를 실행 할 버튼을 만든다!

위에 XML과 연결을 해준다~

 

카메라의 사진을 저장하기 위해선 저장할 경로가 필요하다.

 

cameraTempFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmp_image.jpg";

File imageFile = new File(cameraTempFilePath);
Uri imageFileUri = Uri.fromFile(imageFile);

 

저장할 파일 경로를 설정한다! (실질적으로 저장할 위치에 폴더가 존재하지 않으면 에러가 발생한다.

물론 임시파일사진도 저장되지 않는다.)

 

Intent intent = new Intent();

intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);                  
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);

 

startActivityForResult(intent, REQ_CAMERA_SELECT);

 

인텐트를 생성한다

어디로 가야할지 정해주고 위에서 설정했던 이미지저장할 파일경로를 적어 줍니다.

자 여기서 갤러리 불러오는 방법도!

 

intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
         
startActivityForResult(intent, REQ_GALLERY_SELECT);

 

스타트 엑티비티로 실행이 된 후 그 결과값을 처리해야한다.

그부분은 어디서 하는지 이제부터 시작한다 두둥!!

 

@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  
 if(resultCode == RESULT_OK){


if(requestCode == REQ_CAMERA_SELECT{

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;

// (1,2,4,8 이렇게 지정함으로 원본사진의 반,1/4 로 옵션을 설정)
     
Bitmap mImageBitmap = BitmapFactory.decodeFile(cameraTempFilePath, options);

// 비트맵에 값을 가져와서 사용한다
      
 /* Tiny Image Returned : 섬네일 파일 읽기
mBackBitmap = (Bitmap) data.getExtras().get("data");
ourImageView.setImageBitmap(mBackBitmap);
 */

 

// To do 필요한 처리

}

if(requestCode == REQ_GALLERY_SELECT{

 

// 데이타를 받아와서

Uri currImageURI = data.getData();

Bitmap mImageBitmap = BitmapFactory.decodeStream(
       getContentResolver().openInputStream(currImageURI), null, options);

//To do 필요한 처리 

}

 

}

 

위에서 비트맵으로 이미지 데이타를 불러온 부분은 필요에 위해서 처리하면 된다.

중요한걸 빼먹을뻔  했네요~!

 

안드로이드 메니페스트 파일에서 카메라 사용 권한을 주셔야 합니다. 


반응형
,