
먼저 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) 로 사용하면 된다.