먼저 pubspec.yaml
파일에서
dependencies:
image_picker: ^0.8.4+4
추가 후 전구에서 pub get
누르기
그 다음 ios/Runner/Info.plist
에서
<key>NSPhotoLibraryUsageDescription</key>
<string>사진첩좀 써도 됩니까</string>
<key>NSCameraUsageDescription</key>
<string>카메라좀 써도 됩니까</string>
<key>NSMicrophoneUsageDescription</key>
<string>마이크 권한좀 제발</string>
이걸 <dict>
하단에 추가
그 후 main.dart
에 import 추가
import 'package:image_picker/image_picker.dart';
import 'dart:io'; // 파일 다루는 유용한 함수가 들어있는 기본패키지
onPressed: () async {
var picker = ImagePicker();
var image = await picker.pickImage(source: ImageSource.gallery);
}
참고
picker.pickImage(source: ImageSource.camera);
-> 카메라 띄우기
picker.pickVideo(source: ImageSource.gallery);
-> 비디오 선택화면
picker.pickMultiImage(source: ImageSource.gallery);
-> 여러 이미지 선택
이미지는 용량이 크기 때문에 변수에 저장해놓고 쓰는게 아닌 이미지의 경로만 가져와서 변수에 저장해놓고 사용한다.
// 상단에 state 하나 생성
var userImage;
...
// 해당 state에 image 경로 저장
onPressed: () async {
var picker = ImagePicker();
var image = await picker.pickImage(source: ImageSource.gallery);
if (image != null) {
setState((){
userImage = File(image.path); // 경로 저장
});
}
}
Image.file(userImage)
로 사용하면 된다.