회사 프로젝트 진행중 특이한 기능을 추가 하기로 했어요.
사진을 찍어서 특정 영역을 크롭 하는 기능을 추가 하는 것인데,
현재 진행중인 프로젝트는 Flutter 로 만들고 있었는데
Flutter 라이브러리를 아무리 뒤져봐도 최신 업데이트를 주기적으로 하는
Flutter 라이브러리가 보이지 않아 직접 native에 라이브러리를 추가 하여 Flutter로 읽어 오려 해요.
해당 문서는 Flutter 프로젝트에서 Android native 에 opencv 를 설치 하기 위한 문서에요
이제 시작 할게요.
1. 먼저 opencv를 다운 받아야 해요
아래 Github 에서 최신 releases 버전을 다운 받아 주세요.
저는 안드로이드 native에서 사용할 것이기 때문에
opencv-4.7.0-android-sdk.zip 를 다운 받았어요.
https://github.com/opencv/opencv/releases
2. Android에 모듈을 안정적으로 추가하기위해 Android Studio에서 Android 프로젝트를 실행을 시켜줘요.
안드로이드 프로젝트에서 우측 클릭을 하고 Flutter -> Open Android module in Android Studio 를 클릭하면
새로운 탭에서 안드로이드 프로젝트가 열려요.
3. module을 추가해 보아요
a. 상단 메뉴에서 File -> New -> import Module을 클릭해
b. Source directory 에 폴더 모양 아이콘을 선택해요
C. 1. 번 에서 다운 받은 Opencv 파일 압출을 푼 상태에서 SDK 폴더를 선택해서 열어줘요.
D. Module name은 원하는 이름으로 변경하고 Finish 를 누르면 모듈 추가는 끝이나요.
E. 이제 안드로이드 프로젝트 Gradle 파일에도 추가한 모듈을 의존성 추가를 해줘요.
그림 3에서 설정한 Module name 과 동일한 이름으로 path 이름을 맞춰준후 sync gradle을 해줘요
implementation project(path: ':sdk이름')
F. Android 프로젝트의 MainActivity 파일 수정이 필요해요
메인 화면에서 Opencv 로딩을 할수 있도록 추가를 해줘요.
class MainActivity: FlutterActivity() {
init {
System.loadLibrary("opencv_java4")
}
private val mLoaderCallback: BaseLoaderCallback = object : BaseLoaderCallback(this) {
override fun onManagerConnected(status: Int) {
when (status) {
SUCCESS -> {
Log.e("mylog", "OpenCV onManagerConnected SUCCESS")
}
else -> {
super.onManagerConnected(status)
}
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
flutterEngine?.run {
GeneratedPluginRegistrant.registerWith(this)
}
}
override fun onResume() {
super.onResume()
if (!OpenCVLoader.initDebug()) {
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback)
} else {
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS)
}
}
}
자 이제 opencv 로 마음껏 프로젝트를 진행해 보세요!
'공부방 > Flutter' 카테고리의 다른 글
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!