无法从图库中选取图片 [英] Can't pick image from gallery

查看:115
本文介绍了无法从图库中选取图片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个识别植物物种的应用程序.我想选择一张图像并在屏幕上显示出来,但我不能.图片返回null.尽管我从图库中选择照片,但仍然显示未选择图片".

我还为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆