SPRING :: NOTE

[ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #5 - 촬영된 이미지 저장 본문

Development Language/JAVA · ANDROID

[ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #5 - 촬영된 이미지 저장

RAYZIE 2017. 6. 19. 18:09
반응형

[ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #1

[ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #2

[ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #3 - 오버레이 추가

[ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #4 - 촬영 기능 구현

마지막으로 MediaStorage에 이미지를 저장합니다.

AndroidCamera App의 takePicture 기능을 구현하여 촬영된 이미지를 저장합니다.

이 때 파일저장권한(퍼미션)을 주어야 하기때문에 AndroidManifest.xml에 권한을 등록하시기 바랍니다.

개발 버전이 android 6.0 마쉬멜로우 이상이면, 아래 링크대로 따로 퍼미션을 등록해야 하기때문에 참고하시기바랍니다.

[ANDROID] 안드로이드 6.0(마쉬멜로우)이상 퍼미션

구현 이미지


AndroidCamera.java

 PictureCallback myPictureCallback_JPG = new PictureCallback(){



 @Override

 public void onPictureTaken(byte[] arg0, Camera arg1) {

  // TODO Auto-generated method stub

  /*Bitmap bitmapPicture

   = BitmapFactory.decodeByteArray(arg0, 0, arg0.length); */

 

  Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues());



  OutputStream imageFileOS;

  try {

   imageFileOS = getContentResolver().openOutputStream(uriTarget);

   imageFileOS.write(arg0);

   imageFileOS.flush();

   imageFileOS.close();

  

   Toast.makeText(AndroidCamera.this,

     "Image saved: " + uriTarget.toString(),

     Toast.LENGTH_LONG).show();

  

  } catch (FileNotFoundException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  } catch (IOException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }



  camera.startPreview();

 }};

다음 - [ANDROID] SURFACEVIEW를 이용하여 CAMERA 사용하기 #6 - 오토포커싱(autoFocusing)


반응형
Comments