我正在编写一个识别植物物种的应用程序。我想选择一张图像并在屏幕上显示,但我不能。图片返回null。尽管我从图库中选择照片,但仍然显示“未选择图像”。
我还向Android list 添加了read_external_storage权限。
import 'dart:io';
import 'package:tflite/tflite.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
class PlantSpeciesRecognition extends StatefulWidget {
var model;
PlantSpeciesRecognition(this.model);
@override
_PlantSpeciesRecognitionState createState() =>
_PlantSpeciesRecognitionState();
}
class _PlantSpeciesRecognitionState extends State<PlantSpeciesRecognition> {
File _image;
bool _busy = false;
List _recognitions;
Future chooseImageGallery() async {
debugPrint("choose image function");
var image = await ImagePicker().getImage(source: ImageSource.gallery);
//var image = await ImagePicker.pickImage(source: ImageSource.gallery);
if (image == null) {
debugPrint("choose image if");
return;
}
//await analyzeTFLite();
setState(() {
debugPrint("choose image set state");
_busy = true;
_image = image as File;
});
}
@override
Widget build(BuildContext context) {
List<Widget> stackChildren = [];
Size size = MediaQuery.of(context).size;
//stackChildren.clear();
stackChildren.add(Positioned(
top: 0.0,
left: 0.0,
width: size.width,
child: _image == null ? Text("No Image Selected") : Image.file(_image),
));
return Scaffold(
appBar: AppBar(
title: const Text('Plant Species Recognition'),
),
floatingActionButton: FloatingActionButton(
onPressed: chooseImageGallery,
tooltip: 'Pick Image',
child: Icon(Icons.image),
),
body: Stack(
children: stackChildren,
),
);
}
}
最佳答案
这是正常现象,因为不是返回文件。更正以下行:
setState(() {
debugPrint("choose image set state");
_busy = true;
_image = File(image.path); //change this line.
});
关于android - 无法从图库中选取图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64785733/