본문 바로가기
Flutter/Package

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

by Maccrey Coding 2024. 7. 18.
728x90
반응형

 

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;
    }
  });
}
 

Flutter에서 image_picker 패키지를 사용하면 간편하게 이미지 또는 동영상을 선택하거나 촬영하여 앱에 활용할 수 있습니다.

갤러리에서 이미지를 선택하거나 카메라로 직접 사진을 촬영하는 기능을 손쉽게 구현할 수 있도록 다양한 기능을 제공합니다.

 

728x90
반응형