본문 바로가기

Android

[Android] SurfaceView를 이용한 카메리 기능 구현하기(1)

반응형

 

안드로이드에서 Custom Camera를 만들기 위해서 SurfaceView를 이용하였고,

 

SurfaceView를 이용하기 위해 참고 했던 링크들을 간단한 설명과 함께 올립니다. 

 

이 후에 개인이 다시 사용하기 위해 링크를 모으는 용도로 작성한 것 입니다. 

 

SurfaceView에 대한 간단한 설명을 제공하는 링크

https://jyounggoon.tistory.com/43

 

[Android] SurfaceView

원본 : http://androidhuman.tistory.com/307#viewSource 참고자료 : kandroid_book_3rd_edition.pdf SurfaceView 란 말그대로 일종의 View 이다 하지만 TextView 나 ImageView 와 달리 직접 View에 컨텐츠를 표시..

jyounggoon.tistory.com

 

1. 사용하고 있는 예제 링크

-추가적으로 카메라의 포커스를 잡아주는 예제와 함께 Preview 사이즈를 구하는 메서드까지 같이 제공되고 있다.

 

https://es1015.tistory.com/166

 

[안드로이드] SurfaceView Camera 서페이스뷰 이용한 카메라 기능

[안드로이드] SurfaceView Camera 서페이스뷰 이용한 카메라 기능 [출처 : http://webnautes.tistory.com/822 ] http://www.tutorialspoint.com/android/android_camera.htm 에 있는 예제를 수정해서 만들었습니다..

es1015.tistory.com

 

2. 참고했던 링크

https://rinear.tistory.com/entry/AndroidSurfaceView-Camera-Preview%EC%B9%B4%EB%A9%94%EB%9D%BC-%ED%94%84%EB%A6%AC%EB%B7%B0

-해당 자료는 SurfaceviewClass를 분리하여 제공하므로, 코드 상 보기 더 간결한 느낌을 받을 수 있습니다. 

 

[Android]SurfaceView Camera Preview(카메라 프리뷰)

예제를 많이 찾아보다가 소스 짜집기해서 적당히 쓸만해서 올려봅니다. 서피스뷰가 작동을 잘 안하길래 엄청 고생했네요.. 레이아웃에 addView하는식으로 작성하게되면.. onMeasure()에서 크기가 0으로만 나옵니다..

rinear.tistory.com

 

3. 설명이 잘 되어 있는 자료_1

-실제 사용하진 않았지만 순서에 따라서 정리가 잘 되어 있으므로, 필요로 할 경우 참고하면 좋을 듯 합니다.

https://argc.tistory.com/244?category=699460

 

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

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

argc.tistory.com

 

4. 설명이 잘 되어 있는 자료_2

https://www.jhdn.net/37

 

카메라 제어

우선 카메라 Object를 얻어야 한다. Open을 할 때 UI Thread에서 하면 안된다. 다른 앱이 카메라를 사용중이거나 다른 문제가 있을 경우 아래 코드의 try에 걸리게 된다. API Level 9 이상에서는 멀티 카메라를 지..

www.jhdn.net

만약 사진이 제대로 저장되지 않거나, 원하는 크기가 있는 경우!

-다음과 같은 SurfaceView를 사용할 때 유저의 모바일 기기에 따라서 제공되는 PreView(찍기 전에 제공되는 화면 사진)크기와 실제 저장소에 저장될 사진의 크기가 다르다.

 

따라서 위 조건을 고려하지 않게 된다면, 기기에서 지원되지 않는 사이즈를 사용하려고 할 때는 아예 저장이 되지 않을 수 있으며,  실제 미리보기에서 본 사진의 크기와 다르게 저장 된다거나, 아예 저장이 안되는 경우가 발생할 수 도 있다.

 

https://es1015.tistory.com/168?category=683882

 

[안드로이드] 지원되는 사진, 지원하는 프리뷰 크기 구하기

[안드로이드] 지원되는 사진, 지원하는 프리뷰 크기 구하기 핸드폰에 따라 가능한 사진 크기와 해상도가 다릅니다. 1) 가능한 가장 큰 사진 크기랑 해상도 찾기 PictureSize private Camera.Size getBestPictureSi..

es1015.tistory.com

해당 블로그를 참고하여 마찬가지로 내 기기의 지원하는 사이즈를 파악하고 지원하는 크기로 제공하는 것이 중요하다.

 

 

Camera Chagne 관련 링크

SurfaceView 이용해 카메라를 전환하는 기능으로 카메라에서 제공되는 전면&후면 ID 값을 이용해 전환 할 수 있다.

(후면 카메라가 0번(초기 값), 전면 카메라가 1번)

https://danha.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%B9%B4%EB%A9%94%EB%9D%BC-%EC%A0%84%ED%99%98Camera-toggling-Front-or-back

 

안드로이드 카메라 전환(Camera toggling) Front or back

카메라 촬영 기능에서 전면 카메라, 후면 카메라 전환 기능이 필요해서 만든 소스다. CAMERA_FACING_BACK, CAMERA_FACING_FRONT 값만 설정해서 SurfaceView를 새로 만들기만 하면 되기때문에, 카메라 전환 기능..

danha.tistory.com

 

Touch focus 관련 자료 

-해당 자료에서는 example App도 같이 제공되고 있으므로, 제공 된 코드만으로 이해가 안될 경우 아래 알집을 다운받아 코드를 확인해 동작원리를 본다면 본인 코드에 어디에 추가해야 될지 알 것이다.

https://lsit81.tistory.com/entry/Android-Camera-ICS%EC%97%90%EC%84%9C-%EC%84%A0%ED%83%9D-%ED%8F%AC%EC%BB%A4%EC%8B%B1

 

 

 

[Android] Camera ICS에서 선택 포커싱

안드로이드에서 카메라를 사용시 Android ICS 버전부터 사용자가 선택한 영역을 기준으로 포커싱을 할 수 있는 기능을 제공하고 있습니다. 이에 선택 영역 포커싱을 하는 방법을 알아보도록 하겠습니다. 참고로 An..

lsit81.tistory.com

아마 원본 자료는 이 자료로 생각 된다. 만약 해당 위 다운링크가 제대로 동작하지 않는다면 아래 링크를 통해 다운받아 보면 될 것 같다.

https://github.com/josnidhin/Android-Camera-Example/tree/master/src/com/example/cam

 

josnidhin/Android-Camera-Example

A sample android camera example. Contribute to josnidhin/Android-Camera-Example development by creating an account on GitHub.

github.com

또 다른 포커스 참고 자료(사용하진 않았지만, 다른 자료가 필요한 경우 참고해보길 바란다.) -해당 자료의 경우 사각형을 그려주는 부분도 포함되어 있으므로, 필요한 경우 참고해봐도 좋을 것 같다.

http://android-er.blogspot.com/2012/04/touch-to-select-focus-and-metering-area.html

 

Touch to select focus and metering area

Android developer blog: learn programming for Android

android-er.blogspot.com

 

Touch focus 관련 자료- Focus 영역에 사각형 그려주기 

-터치한 영역에 사각형을 그려주는 데 참고한 자료이며, 첫번째 답변을 활용하였다.

-SurfaceView 두개를 활용하여 사각형을 그려주는데, 단점은 2개의 Surfaceview를 활용하다 보니, 

하나를 사용할 때에 비하여 길다는 단점이 있다.

-해당 자료를 토대로 새롭게 터치 한 부분에 포커스를 그려줄 수 있도록 변경할 에정이다.

https://stackoverflow.com/questions/25907615/draw-rectangle-on-surfaceview

 

Draw Rectangle on SurfaceView

I would like to know how to draw a rectangle in specific position and size. I tried a couple of trials and examples here and on web, but nothing worked for me. I'm using a SurfaceView and Surface...

stackoverflow.com

 

Pinch Zoom IN&OUT 관련 참고 자료 

-GitHub에서 참고 한 자료로  두 손가락을 이용해서 줌인을 하거나 줌아웃을 할 수 있다.

-Autofocus 기능도 함께 제공 되는 것 같으므로, 필요한 경우 사용해도 좋을 것 같다.

https://github.com/maxtower/AndroidDocumentScanner/blob/master/app/src/main/java/com/martin/opencv4android/CameraPreview.java

 

maxtower/AndroidDocumentScanner

Android Document Scanner using OpenCV C++ and Android NDK - maxtower/AndroidDocumentScanner

github.com

 

 

 

Web, Android, iOS 개발 문의 및 앱 웹 제작 문의

Email : funidea2020@naver.com

https://funidea.co.kr

 

https://funidea.co.kr/

AI 챗봇 & 사물인식 사물 인식, 인공지능 챗봇 등 Smart한 인공지능 기술을 통해 반복 업무를 줄여 보세요. 위치 기반 서비스 GPS 기능을 활용하여 현재 위치를 기준으로 주변 정보(은행, 음식점, 주�

funidea.co.kr

 

여성 신체 사이즈 기반 상품 추천 서비스!

나에게 딱 맞은 골라보자! Fit Me !

https://fit-me.kr/

 

핏미 - 사이즈 고민 없는 여성 쇼핑앱

더이상의 사이즈 고민은 그만! 수많은 여성 쇼핑몰을 한눈에! - 핏미

fit-me.kr

 

 

반응형