[react-native] image metadata

kiten Jung·2022년 4월 22일

개발일지

목록 보기
1/2

결론 : react-native-image-crop-picker
https://github.com/ivpusic/react-native-image-crop-picker

과정
이미지에서 시간과 위,경도를 가져와야 하는 상황이 생겼습니다.
사진에 위치정보를 주기 위해서는

  • 안드로이드의 : 카메라-환경설정-위치태그 on
  • 아이폰 : 개인 정보 보호 - 위치서비스 - 카메라 - 앱을 사용하는동안
    을 켜주셔야 됩니다.

처음에 react-native-image-picker 라이브러리에서 includeExtra옵션으로 정보를 가져 올려고 했으나 정보가 호출되지 않았습니다. issue에는 된다고 되어 있지만 저는 안되었습니다....
그래서 다른 라이브러리를 찾다가
react-native-exif(https://github.com/francisco-sanchez-molina/react-native-exif)를 찾았는데 시간을 보니 오래된거라 호환이 안될거라고 생각을 했습니다.
실제로 안되지만 안드로이드로 import값을 몇개만 고쳐주면 되었습니다.

import android.support.annotation.Nullable
=> import androidx.annotation.Nullable

android.support.v4.content.FileProvider
=> androidx.core.content.FileProvider

이렇게 변경후 실행하면 되었습니다.
(참고로 @notech/react-native-exif는 안돌아갔습니다. mutidex문제가 있는데 어떻게 수정하는지 모르겠었습니다.)

그래서 react-native-image-picker로 사진의 주소를 불러와서 react-native-exif를 연결하였지만 정확한 데이터를 들고오지 못하는 현상이 나왔습니다.

그래서 경로를 잘보면 react-native-image-picker가 이미지를 임시저장하여 가져오는거처럼 보여 알고있는 다른 이지미 라이브러리(react-native-image-picker-crop)를 사용해보았습니다.
react-native-image-picker-crop에도 includeExif옵션이 있어 사용해보니 앞에 라이브러리와 다르게 매우 잘나왔습니다.

경로 또한 실제 이미지 경로라 react-native-exif도 잘나왔습니다.
하지만 react-native-image-picker자체에서 나오는 값이므로 라이브러리를 제거 하였습니다.


이미지의 위경도는 맘대로 수정이 가능합니다.
그래서 정확성을 위해 사진이 만들어진날짜(create)와 수정날짜(modifyData)를 비교하여 정확성 검사를 해주어야 할 것 같습니다.
안드로이드는 괜찬지만 아이폰은 숫자가 몇개 적어서 보니 뒤에 000같은건 제거 되어서 자리에 맞추어서 0을 채워주시면 알맞은 시간때가 나올것입니다.

profile
느림느림

0개의 댓글