플러터에서 Image Picker 패키지 사용법

2024. 6. 3. 22:46Flutter/Flutter Programming

반응형

1. 개요

Flutter에서 이미지를 선택하거나 촬영하는 기능을 간편하게 구현할 수 있도록 image_picker 패키지가 제공됩니다. 이 패키지를 사용하면 갤러리에서 이미지를 선택하거나 카메라로 직접 사진을 촬영하여 앱에 활용할 수 있습니다.

2. 설치

프로젝트에 image_picker 패키지를 설치하려면 다음 명령어를 실행합니다.

 
pub add image_picker
 

3. 사용 방법

3.1 기본 사용

  1. pubspec.yaml 파일에 image_picker 패키지를 추가합니다.
dependencies:
  flutter:
    sdk: flutter

  image_picker: ^latest_version
 
  1. Dart 코드에서 image_picker 패키지를 import합니다.
import 'package:image_picker/image_picker.dart';
 
  1. ImagePicker 클래스를 사용하여 ImagePicker 객체를 생성합니다.
final ImagePicker _picker = ImagePicker();
 
  1. pickImage() 또는 pickVideo() 메서드를 사용하여 이미지 또는 동영상을 선택합니다.
Future<File?> pickImage() async {
  final pickedFile = await _picker.pickImage(source: ImageSource.gallery);

  if (pickedFile != null) {
    return File(pickedFile.path);
  } else {
    return null;
  }
}
 
  1. 선택된 이미지 또는 동영상을 처리합니다.
File? selectedImage = await pickImage();

if (selectedImage != null) {
  // 선택된 이미지 처리
  Image.file(selectedImage);
} else {
  // 이미지 선택 취소
}
 

3.2 다중 이미지 선택

pickMultipleImages() 메서드를 사용하여 갤러리에서 여러 이미지를 동시에 선택할 수 있습니다.

Future<List<File>?> pickMultipleImages() async {
  final pickedFiles = await _picker.pickMultipleImages();

  if (pickedFiles != null) {
    return pickedFiles.map((file) => File(file.path)).toList();
  } else {
    return null;
  }
}
 

3.3 카메라 사용

pickImage() 또는 pickVideo() 메서드의 source 매개변수를 ImageSource.camera로 설정하여 카메라를 사용하여 사진을 촬영하거나 동영상을 녹화할 수 있습니다.

Future<File?> pickImageFromCamera() async {
  final pickedFile = await _picker.pickImage(source: ImageSource.camera);

  if (pickedFile != null) {
    return File(pickedFile.path);
  } else {
    return null;
  }
}
 

4. 권한 요청

Android 또는 iOS 기기에서 이미지 또는 동영상에 액세스하려면 앱이 해당 권한을 요청해야 합니다.

import 'package:flutter/services.dart';

Future<bool> requestStoragePermission() async {
  await [Permission.storage]
      .requestPermissions()
      .then((Map<Permission, PermissionStatus> statuses) {
    if (statuses[Permission.storage] == PermissionStatus.granted) {
      return true;
    } else {
      return false;
    }
  });
}
 

5. 참고자료

  • Image Picker 공식 문서
  • Flutter에서 이미지 선택하기 [유효하지 않은 URL 삭제됨]
  • Flutter에서 여러 이미지 선택하기 [유효하지 않은 URL 삭제됨]
  • Flutter에서 카메라 사용하기 [유효하지 않은 URL 삭제됨]

6. 마무리

Flutter에서 image_picker 패키지를 사용하면 간편하게 이미지 또는 동영상을 선택하거나 촬영하여 앱에 활용할 수 있습니다. 갤러리에서 이미지를 선택하거나 카메라로 직접 사진을 촬영하는 기능을 손쉽게 구현할 수 있도록 다양한 기능을 제공합니다.

 

수발가족을 위한 일기장 “나비일기장”

 

https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release

 

비공개테스트를 위한 20명의 테스터모집 앱 "테스터 쉐어"

 

https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release

반응형