폰에 저장된 이미지 가져오기

철웅·2023년 3월 13일
0

Flutter_Tips

목록 보기
6/10
post-thumbnail

📌 셋팅 작업

먼저 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);	// 경로 저장
    });
  }
}
  • 사용자의 입력은 항상 null 값도 있다고생각하고 예외처리를 해주자
  • 지정된 경로로 이미지를 출력하는 방법은
    Image.file(userImage) 로 사용하면 된다.

0개의 댓글