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

박망키·2022년 8월 15일
0

Flutter 야금야금 먹기

목록 보기
59/97
post-thumbnail

1.pubspec.yaml에 image_picker추가

2.ios>Runner>info.plist에 추가하기

<key>NSPhotoLibraryUsageDescription</key>
<string>사진첩좀 써도 됩니까</string>
<key>NSCameraUsageDescription</key>
<string>카메라좀 써도 됩니까</string>
<key>NSMicrophoneUsageDescription</key>
<string>마이크 권한좀 제발</string>


(권한요청과정없음)

3.Dart파일 맨 위에 패키지 import하기

import 'package:image_picker/image_picker.dart';
import 'dart:io';


4.이벤트가 발생할 곳에 아래의 코드 넣기

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);
이러면 여러 이미지 선택이 가능.
-고른 이미지 사이즈, 화질 조정도 가능.
-photofilters 이런 패키지 설치하면 이미지에 필터도 씌울 수 있음.


잘 작동한다.

5.이미지 경로 저장하기

변수 userImage를 만들고 이미지 경로를 저장한다.
이미지를 안고를때를 대비해서 if문으로 한다.

if(image!=null){
     setState(() {
      userImage=File(image.path);
     });
  }

6.이미지 보여주기

이미지를 선택하면 선택한 이미지와 함께 새 페이지를 띄우고 선택하지 않으면 화면이 변하지 않도록 했다.

home.dart

upload.dart

import 'package:flutter/material.dart';
class Upload extends StatelessWidget {
  const Upload({Key? key,required this.userImage}) : super(key: key);
  final userImage;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar:AppBar(
      leading: IconButton(onPressed: (){
        Navigator.pop(context);
      },icon: Icon(Icons.close,color: Colors.black87,),) ,
      ),
      body:Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Image.file(userImage),
          Text('이미지 업로드 화면'),
        ],
      )
    );
  }
}


profile
무럭무럭 자라는 망키

0개의 댓글