1. 程式人生 > 其它 >app直播系統原始碼,Flutter拍照與選擇照片並且儲存到本地

app直播系統原始碼,Flutter拍照與選擇照片並且儲存到本地

app直播系統原始碼,Flutter拍照與選擇照片並且儲存到本地實現的相關程式碼

核心程式碼:

final picker = ImagePicker(); //初始化
///存放的圖片
File _imgPath;
Future getImage(bool isTakePhoto) async {
try {
var pickedFile = await picker.getImage(
source: isTakePhoto ? ImageSource.camera : ImageSource.gallery);
if (pickedFile != null) {
setState(() {
_imgPath = File(pickedFile.path);
});
} else {
print('沒有選擇任何圖片');
}
} catch (e) {
print("該手機不支援相機");
}
}

​具體程式碼:

import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
class ImageTest extends StatefulWidget {
@override
State<StatefulWidget> createState() => ImageState();
}
class ImageState extends State<ImageTest> {
final picker = ImagePicker();
File _imgPath;
Future getImage(bool isTakePhoto) async {
try {
var pickedFile = await picker.getImage(
source: isTakePhoto ? ImageSource.camera : ImageSource.gallery);
if (pickedFile != null) {
setState(() {
_imgPath = File(pickedFile.path);
});
} else {
print('沒有選擇任何圖片');
}
} catch (e) {
print("該手機不支援相機");
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: [
MaterialButton(
minWidth: 100,
height: 100,
color: Colors.blue,
onPressed: () {
getImage(true);
},
child: Text(
"拍照",
style: TextStyle(fontSize: 32, color: Colors.white),
)),
SizedBox(
height: 30,
),
MaterialButton(
minWidth: 100,
height: 100,
color: Colors.blue,
onPressed: () {
getImage(false);
},
child: Text("選擇照片",
style: TextStyle(fontSize: 32, color: Colors.white))),
_imgPath != null
? Image.file(
_imgPath,
fit: BoxFit.cover,
)
: Center(
child: Text(
"沒有選擇照片",
style: TextStyle(fontSize: 32, color: Colors.black)s,
))
],
),
);
}
}

注意:此處儲存的圖片存放在快取中,如果需要儲存到本地則需使用image_gallery_saver,用於儲存。

以上就是 app直播系統原始碼,Flutter拍照與選擇照片並且儲存到本地實現的相關程式碼,更多內容歡迎關注之後的文章