无法从图库中选取图片 [英] Can't pick image from gallery
本文介绍了无法从图库中选取图片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我还为Android清单添加了read_external_storage权限.
import'dart:io';导入'package:tflite/tflite.dart';导入'package:flutter/material.dart';导入'package:image_picker/image_picker.dart';PlantSpeciesRecognition类扩展了StatefulWidget {var model;PlantSpeciesRecognition(this.model);@override_PlantSpeciesRecognitionState createState()=>_PlantSpeciesRecognitionState();}类_PlantSpeciesRecognitionState扩展了State< PlantSpeciesRecognition>{文件_image;bool _busy = false;清单_recognitions;未来的selectImageGallery()异步{debugPrint(选择图像功能");var image = await ImagePicker().getImage(source:ImageSource.gallery);//var image = await ImagePicker.pickImage(source:ImageSource.gallery);如果(图片==空){debugPrint(选择图像,如果");返回;}//等待analyzerTFLite();setState((){debugPrint(选择图像设置状态");_busy = true;_image =图片作为文件;});}@override窗口小部件build(BuildContext context){列表< Widget>stackChildren = [];大小大小= MediaQuery.of(context).size;//stackChildren.clear();stackChildren.add(已定位(最高:0.0,左:0.0,宽度:size.width,孩子:_image == null?文本(未选择任何图像"):Image.file(_image),));返回脚手架(appBar:AppBar(标题:const Text('Plant Species Recognition'),),floatActionButton:FloatingActionButton(onPressed:选择图片库,工具提示:选择图片",子级:Icon(Icons.image),),身体:堆栈(孩子:stackChildren,),);}}
解决方案
这是正常现象,因为它不是返回的文件.更正以下行:
setState((){debugPrint(选择图像设置状态");_busy = true;_image =文件(image.path);//更改此行.});
I am coding an application for recognizing plant species. I want to pick an image and show that on screen but i can't. Image returns null. Although i choose photo from gallery, it still says "no image selected".
I also added read_external_storage permission to android manifests.
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,
),
);
}
}
解决方案
this is normal because it is not the file that is returned. Correct the following line:
setState(() {
debugPrint("choose image set state");
_busy = true;
_image = File(image.path); //change this line.
});
这篇关于无法从图库中选取图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文