반응형
Android Image Cropper
Android Image Cropper는 쉽게 이미지를 크롭하는 라이브러리이다.
https://github.com/CanHub/Android-Image-Cropper
원하는 기능
프로필 이미지를 등록하고싶은데, 사용자가 이미지의 원하는 부분만 크롭해서 저장하게 하고 싶었다.
이미지를 선택하는 기능은 아래 링크에서 확인할 수 있다.
https://dev-ej2.tistory.com/80
이제 이미지를 선택했으니, 선택한 이미지의 uri를 가지고 crop을 해야한다.
사전 준비
1. 먼저 해당 라이브러리를 사용 할 수 있도록 app 수준 gradle에 추가를 해줍니다.
// image crop
implementation("com.vanniktech:android-image-cropper:4.5.0")
2. manifest에 theme를 적용한 activity를 추가한다.
<activity
android:name="com.canhub.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"
/>
이렇게 하면 라이브러리를 사용하기 위한 사전 준비가 끝난다.
라이브러리 사용
1. registerForAcitivityResult를 이용하여 크롭 결과를 콜백 받을 수 있다.
private val cropImage = registerForActivityResult(CropImageContract()) { result ->
if (result.isSuccessful) {
// returned uri 사용
val uriContent = result.uriContent
val uriFilePath = result.getUriFilePath(requireContext()) // optional usage
} else {
// An error occurred.
val exception = result.error
}
}
2. cropping acitivity를 시작하는 코드이다.
// cropping activity 시작
cropImage.launch(CropImageContractOptions(
uri = uri, // 크롭할 이미지 uri
cropImageOptions = CropImageOptions(
outputCompressFormat = Bitmap.CompressFormat.PNG
// 원하는 옵션 추가
)
))
guideline을 제거한다던가 높이, 너비 maxSize를 정하는 등 다양한 옵션을 CropImageOptions에 추가할 수 있다.
output이 jpeg가 디폴트라, png로 옵션을 설정한 예제이다.
결과는?
다음과 같이 적용이 된다. 크롭한 이미지는 uri를 받아 자유롭게 사용이 가능해서 편리하다.
'IT > Android' 카테고리의 다른 글
android / 안드로이드 webview에서 window.popup() 띄우기 (0) | 2023.11.16 |
---|---|
android / 안드로이드 webview history back 화면 스크롤 유지 방법 (activity 이동) (0) | 2023.10.20 |
안드로이드 / android 13 photo picker 사용방법 (0) | 2023.10.05 |
안드로이드 스튜디오 버전 업데이트 방법 (+기린 giraffe 새로운 UI 적용) (0) | 2023.07.29 |
안드로이드 스튜디오 / GoogleMap 클러스터링 마커에 uri를 통해 이미지 로드시 기본마커 나타날때 (0) | 2023.07.17 |