如何为 ImageProvider 提供图像对象 (Flutter)

How do I feed an ImageProvider with an image object(Flutter)

我有这个来自 photo_view 的 PhotoView:^0.10.3。我想将 Image 对象用于 PhotoView,但它需要一个 ImageProvider,我不知道该怎么做。我知道 AssetsImage() 可以被提供,但我的图像不是来自资产,我已经用我想要的图像制作了一个图像对象。

import 'package:photo_view/photo_view.dart';
import 'package:flutter/material.dart';



class PlaceSelectedImage extends StatefulWidget{
  final Image _image;
  PlaceSelectedImage(this._image);
  @override
  PlaceSelectedImageState createState() => PlaceSelectedImageState(_image);
}

class PlaceSelectedImageState extends State<PlaceSelectedImage>{
  final Image _image;
  PlaceSelectedImageState(this._image);
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(
      child: PhotoView(
          imageProvider: _image
      ),
    );
  }

}

如果您想使用来自服务器的图像,您需要使用 NetworkImage class 而不是使用 AssetImage。

您不能使用 Image,因为它本身是一个不同的小部件,它会消耗 Asset/NetworkImage。

我设法解决了:我使用了 FileImage(),我没有传递 _image,而是传递了文件路径。

如果您需要提供从另一个屏幕获取的图像,

尝试使用此代码:

import 'package:photo_view/photo_view.dart';
import 'package:flutter/material.dart';

class PlaceSelectedImage extends StatefulWidget{
final Image _image;
PlaceSelectedImage(this._image);
@override
PlaceSelectedImageState createState() => PlaceSelectedImageState(_image);
}

class PlaceSelectedImageState extends State<PlaceSelectedImage>{

@override
 Widget build(BuildContext context) {
  // TODO: implement build
  return Center(
  child: PhotoView(
      imageProvider: widget._image
  ),
);
}
}