如何在 Flutter 中通过画廊或相机从所选图像中获取图像(不想在屏幕上显示)?
How to get the Image out of a chosen Image by gallery or camera in Flutter (don't want to show it on screen)?
我有下面的 Flutter/dart 代码,它让我打开相机/图库以 select 一张照片。但我不想立即在屏幕上显示图像(因为它在这里)。我想让图像处理它,所以可能会保存它或获取像 'Image.asset("")' 这样的图像。最重要的是我可以在选择图像后对其进行处理。
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Future<File> imageFile;
pickImageFromGallery(ImageSource source) {
setState(() {
});
imageFile = ImagePicker.pickImage(source: source);
}
Widget showImage() {
return FutureBuilder<File>(
future: imageFile,
builder: (BuildContext context, AsyncSnapshot<File> snapshot) {
if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) {
return Image.file(
snapshot.data,
width: 300,
height: 300,
);
}
else {
return Text("error");
}
},
);
}
bildmachen(ImageSource quelle) {
pickImageFromGallery(quelle);
Widget bildAusgabe = showImage();
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => Bildzeige(bildAusgabe)));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
showImage,
RaisedButton(
child: Text("gehtschon?"),
onPressed: () {
bildmachen(ImageSource.gallery);
},
),
],
),
),
backgroundColor: Colors.yellowAccent,
);
}
}
谢谢
如果要将ImagePicker中选择的图片保存到File对象中
你可以这样做
File _imageFile;
final picker = ImagePicker();
.
.
.
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
_imageFile = File(pickedFile.path);
}
});
}
// the getImage() method will opens the ImagePicker and the selected image will be stored in _imageFile
我希望这个解决方案对您有所帮助
我有下面的 Flutter/dart 代码,它让我打开相机/图库以 select 一张照片。但我不想立即在屏幕上显示图像(因为它在这里)。我想让图像处理它,所以可能会保存它或获取像 'Image.asset("")' 这样的图像。最重要的是我可以在选择图像后对其进行处理。
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Future<File> imageFile;
pickImageFromGallery(ImageSource source) {
setState(() {
});
imageFile = ImagePicker.pickImage(source: source);
}
Widget showImage() {
return FutureBuilder<File>(
future: imageFile,
builder: (BuildContext context, AsyncSnapshot<File> snapshot) {
if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) {
return Image.file(
snapshot.data,
width: 300,
height: 300,
);
}
else {
return Text("error");
}
},
);
}
bildmachen(ImageSource quelle) {
pickImageFromGallery(quelle);
Widget bildAusgabe = showImage();
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => Bildzeige(bildAusgabe)));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
showImage,
RaisedButton(
child: Text("gehtschon?"),
onPressed: () {
bildmachen(ImageSource.gallery);
},
),
],
),
),
backgroundColor: Colors.yellowAccent,
);
}
}
谢谢
如果要将ImagePicker中选择的图片保存到File对象中 你可以这样做
File _imageFile;
final picker = ImagePicker();
.
.
.
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
_imageFile = File(pickedFile.path);
}
});
}
// the getImage() method will opens the ImagePicker and the selected image will be stored in _imageFile
我希望这个解决方案对您有所帮助