프로젝트 소개

# react-native-image-crop-picker 기기 갤러리나 카메라에서 이미지와 동영상을 선택하기 위한 React Native 모듈로, 자르기, 압축, 다중 선택 및 다양한 사용자 정의 옵션을 지원합니다. iOS와 Android 모두에서 작동합니다. ## 기능 - **갤러리 및 카메라**: 시스템 피커나 카메라를 직접 엽니다. - **자르기**: 사용자 정의 가능한 치수, 원형 오버레이, 자유 형식 자르기 및 회전 제스처(Android)로 자르기를 활성화합니다. - **다중 선택**: 한 번에 여러 이미지나 동영상을 선택합니다. - **압축**: 최대 너비/높이/품질로 이미지를 압축하고, 프리셋으로 동영상을 압축합니다(iOS). - **미디어 유형**: 사진, 동영상 또는 전체 중 필터링합니다. - **Base64 및 EXIF**: 응답에 Base64 데이터와 EXIF 메타데이터를 선택적으로 포함합니다. - **정리**: 선택 중에 생성된 임시 파일을 제거합니다. - **사용자 정의**: UI 색상, 텍스트 및 동작(예: 자르기 프레임, 가이드라인, 툴바)에 대한 광범위한 옵션을 제공합니다. ## 설치 ```bash npm i react-native-image-crop-picker --save ``` iOS의 경우 `cd ios && pod install`을 실행하십시오. `Info.plist`에 사용 설명을 추가하십시오(예: 사진 라이브러리 접근을 위한 `NSPhotoLibraryUsageDescription`). Android의 경우 `AndroidManifest.xml`에 필요한 권한(예: 카메라, 저장소)을 추가하십시오. ## 사용법 ```javascript import ImagePicker from 'react-native-image-crop-picker'; // 자르기가 포함된 단일 이미지 ImagePicker.openPicker({ width: 300, height: 400, cropping: true }) .then(image => console.log(image)) .catch(error => console.log(error)); // 다중 이미지 ImagePicker.openPicker({ multiple: true }) .then(images => console.log(images)); // 동영상 전용 ImagePicker.openPicker({ mediaType: 'video' }) .then(video => console.log(video)); // 카메라 ImagePicker.openCamera({ width: 300, height: 400, cropping: true }) .then(image => console.log(image)); // 기존 파일 자르기 ImagePicker.openCropper({ path: 'file-path.jpg', width: 300, height: 400 }) .then(image => console.log(image)); ``` ## 옵션 주요 옵션에는 `cropping`, `width`, `height`, `multiple`, `mediaType`, `includeBase64`, `includeExif`, `compressImageMaxWidth`, `compressImageMaxHeight`, `compressImageQuality`, `freeStyleCropEnabled`, `cropperCircleOverlay` 등이 포함되어 있습니다. 전체 목록은 README를 참조하십시오. ## 응답 선택된 각 자산에는 `path`, `width`, `height`, `mime`, `size`, `duration`(동영상의 경우), `data`(base64인 경우), `exif`, `cropRect`와 같은 속성이 포함됩니다. iOS에서는 또한 `localIdentifier`, `sourceURL`, `creationDate`, `modificationDate`를 제공합니다. ## 참고 사항 - React Native 신규 아키텍처의 경우 버전 >= 0.50.0을 사용하십시오. - Android에서는 동영상을 선택할 때 `cropping`을 `true`로 설정하지 마십시오. 갤러리에서 동영상이 숨겨질 수 있습니다. - 이 모듈은 임시 파일을 생성하며, 이를 제거하려면 `clean()` 또는 `cleanSingle(path)`을 사용하십시오. ## 라이선스 MIT(저장소에서 암시되지만 제공된 README에는 명시되어 있지 않음).