해당 작성 링크들은 개발하면서 참고 했던 링크들을 주제별로 정리한 자료입니다.
대부분 링크에 대한 설명이므로, 해당 기능에 대한 설명이 부족할 수 있습니다. !
1. Camrea2 API를 이용한 카메라 미리보기 및 촬영 관련 링크
-사용한 코드에 대한 튜토리얼을 제공하는 곳
-코드에 대한 설명도 같이 되어 있으므로 참고하면 좋을 것 같음.
https://riptutorial.com/android/example/2021/preview-the-main-camera-in-a-textureview
Android - Preview the main camera in a TextureView | android Tutorial
android documentation: Preview the main camera in a TextureView
riptutorial.com
2. 해당 코드를 이용에서 사진찍기 및 저장기능까지 추가 된 example 자료
-처음에는 아래의 링크에서 제공하는 takePicture 코드로 사진 찍기 기능을 구현하였으나,
간혹 사진이 제대로 저장되지 않는 문제가 발생함.
-(문제점을 해결하진 못하였으나... save부분에 가끔 동작하지 않는 것을 로그상으로 확인하였고, buffer 부분에서 제대로
이미지를 처리해주지 못하는 것으로 판단함. 추후 원인에 대해 파악해 볼 예정)
https://myandroidarchive.tistory.com/6
안드로이드 Camera2 캡쳐기능
이전에 있던 Camera2 프리뷰 기능에 캡쳐기능을 추가하였다. 우선 코드는 책(빛과 소리의 향연 안드로이드 프로그래밍, 박헌재)의 코드를 사용하였다. 코드가 간단할 뿐만 아니라, 블로그에 있던 코드와 거의 흡사..
myandroidarchive.tistory.com
3. 2번 링크에서 해결하지 못하여, 좀 더 복잡하지만, 내가 참고한 소스코드와 동일한 코드에서 사진찍는 부분이 추가 된 것으로 해당 코드를 이용하여 사진찍기 기능을 구현
-2번에서 제공되는 코드에 비해서 좀 더 복잡한 구조를 갖고 있지만, 자세하게 설명되어 있다.
-해당 코드는 코틀린도 같이 제공되므로, 코틀린을 이용하는 사용자도 한번쯤 확인해봐도 좋을 것 같다.
https://github.com/googlearchive/android-Camera2Basic
googlearchive/android-Camera2Basic
Migrated:. Contribute to googlearchive/android-Camera2Basic development by creating an account on GitHub.
github.com
4. 3번 코드에 대한 간략한 설명이 되어 있음
-Camear2의 동작원리에 대해 설명되어 있다.
https://www.charlezz.com/?p=1118
Camera2 Basic 소스 살펴보기 | 찰스의 안드로이드
카메라 Android의 카메라 HAL (Hardware Abstraction Layer)은 Camera 2의 상위 수준의 카메라 프레임 워크 API를 기본 카메라 드라이버 및 하드웨어에 연결합니다. 카메라 서브 시스템은 카메라 파이프 라인 구성 요소에 대한 구현을 포함하는 반면 카메라 HAL은 이러한 구성 요소의 버전을 구현하는 데 사용할 인터페이스를 제공합니다. 구조 다음 그림과 목록은 HAL 구성 요소를 설명합니다. Application Framewo
www.charlezz.com
5. 카메라를 사용하게 되면 사진이 왜곡 된다거나, 잘리는 경우가 발생 할 수 있다.
-그 중 하나의 이유가 될 수 있는 것으로, 각 디바이스마다 지원하는 카메라의 해상도가 다르므로 발생 할 수 있다.(추가적으로 전면, 후면 카메라도 서로 다른 해상도를 지원하므로, 고정 해상도를 사용해야 할 경우 지원하는 해상도에 파악하는 것이 중요하다.)
특히 CustomCamera를 사용해서 앱을 만들어야 될 경우 해상도를 파악하는 것은 중요하다. 아래는 각 기기에서 지원하는 카메라의 해상도를 파악 할 수 있는 코드의 일부분이다.
Java Code Examples android.hardware.camera2.params.StreamConfigurationMap
Java Code Examples for android.hardware.camera2.params.StreamConfigurationMap The following are top voted examples for showing how to use android.hardware.camera2.params.StreamConfigurationMap. These examples are extracted from open source projects. You ca
www.programcreek.com
6. 전면 카메라 반전 되는 경우
-보통 카메라의 경우 전면 카메라로 촬영하게 되면, 좌우 반전되는 경우가 발생한다.
-이 문제를 해결하기 위해선 저장하는 부분에서 다음과 같은 코드를 사용하였다.
-저장 시 사용하는 byte를 bitmap으로 변환 한 뒤 Matrix 객체를((martrix.setCale(-1,1)을 사용) 이용해 이미지의 좌우를 반전 시킨다.
또한 추가적으로 만약 세로가 긴 이미지라면, 이미지를 90도 회전 시키기 위해서 postRotate(90)를 해서 이미지를 회전 시킨다.
//전면 카메라에서 사진이 반전 되는 문제를 해결한다.
//1. 생성 된 byte 값을 통해 bitmap 객체를 만든다.
//2. Matrix를 이용해 만들어진 bitmap의 이미지를 좌우 반전 시킨 뒤 bitmap을 byte 화 한다.
if(Camera_change_number==1){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options);
Matrix matrix = new Matrix();
//이미지를 좌우 반전 시킨다.
matrix.setScale(-1,1);
//Log.d(TAG, "이미지 크기"+ w+"가로"+h+"세로");
//이미지의 각도를 90 주는 이유
//Preview 에서는 1280 * 720(반대로 720*1280 지원하지 않음.)을 지원하기 때문에,
//해당 이미지의 경우 90를 회전 시켜준다.
matrix.postRotate(90);
//새롭게 만들어진 bitmap으로 이미지 파일을 생성한다.
bitmap = Bitmap.createBitmap(bitmap, 0, 0, 1440, 1080, matrix, true);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] front_picture = stream.toByteArray();
bytes = front_picture;
}
7. +추가) 카메라의 사진이 저장 될 때 회전이 발생하는 경우
-카메라를 이용해 사진이 회전하는 경우 참고할만한 링크이다.
-설명이 상세히 잘 되어 있고 만약 다양한 블로그 또는 본인이 커스텀카메라를 만들어 사진을 저장하는데 있어서 회전되는 문제가 발생한다면 해당 블로그에서 제공하는 방법을 사용하는 것도 좋을 것 같다.
https://medium.com/@kenodoggy/solving-image-rotation-on-android-using-camera2-api-7b3ed3518ab6
Solving image rotation on Android using Camera2 API
I wrote this post back in April 2017, and just discovered it yesterday sitting around, unpublished. I probably meant to proofread it and…
medium.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