2025. 9. 24. 14:34
1. react native image picker 설치
npm i react-native-image-picker
npx pod-install ios
2. 설치 후 작업 설정
ios
Info.plist
ios - appname - Info.plist
<key>NSCameraUsageDescription</key>
<string>카메라 사용 권한은 이미지 촬영 및 첨부를 위해 필요합니다.</string>
<key>NSPhotoLibraryAddUsageDesription</key>
<string>카메라 사용 권한은 이미지 촬영 및 첨부를 위해 필요합니다.</string>
<key>NSPhotoLibraryAddUsageDesription</key>
<string>카메라 사용 권한은 이미지 촬영 및 첨부를 위해 필요합니다.</string>
android - app - src - main - AndroidManifest.xml
근데 안드로이드는 설정 안 해도 되나?
3. launchImageLibrary 로딩
import { launchImageLibrary } from 'react-native-image-picker';
4. 버튼 누르면 이미지 로딩 후 출력 테스트
const onPress = () => {
launchImageLibrary({}, res => {
console.log('launchImageLibrary : ', res);
});
}
그러면 다음과 같은 정보 출력
- fileName: "38B7D56B-D214-41ED-A792-99438189F640.jpg"
- fileSize: 1484524
- height: 2002
- type: "image/jpg"
- uri: "file:///Users/pi/Library/Developer/CoreSimulator/Devices/D41E8A8D-0E3F-4043-BD09-32C4AF2DC6EC/data/Containers/Data/Application/72F5F0F9-2D3D-406F-A40F-54662B03A186/tmp/38B7D56B-D214-41ED-A792-99438189F640.jpg"
- width: 3000
5. 파일 정보 얻기
const file = res.assets[0];
6. base64 포함 추가
const onPress = () => {
launchImageLibrary({ includeBase64: true }, res => {
console.log('launchImageLibrary : ', res);
});
}
7. 다시 출력 - base64 확인
- base64: "/9j/4AAQSkZJRgABAQAASABIAAD/4QKERXhpZgAATU0AKgAAA
- fileName: "74B22DAE-C239-45EF-A1A6-CBEC14AFCFF3.jpg"
- fileSize: 2567402
- height: 2848
- type: "image/jpg"
- uri: "file:///Users/leejaeman/Library/Developer/CoreSimulator/Devices/D41E8A8D-0E3F-4043-BD09-32C4AF2DC6EC/data/Containers/Data/Application/72F5F0F9-2D3D-406F-A40F-54662B03A186/tmp/74B22DAE-C239-45EF-A1A6-CBEC14AFCFF3.jpg"
- width: 4288