Flutter 将 Image.file() 图像制作成可缩放照片的 ImageProvider()
Flutter Making an Image.file() image into an ImageProvider() for zoomable photos
我创建了一个应用程序,可以下载大量信息供离线使用,其中大部分是照片。在应用程序中,我想使用一个小部件,让我有一个 pan/zoom 效果,但我发现的那些似乎不能很好地与 Image.file() 一起玩,而是使用ImageProviders.
例如,Photo_View只接受继承自ImageProvider的AssetImage和NetworkImage图像,而Image.file()继承自Diagnosticable。我见过的所有软件包都以基本相同的方式运行。
所以,我的问题是如何将 Image.file() 数据转换为 ImageProvider 格式。
而不是 Image.file()
使用 FileImage()
类型 ImageProvider
.
来自医生:
Decodes the given File
object as an image, associating it with the
given scale.
See also:
Image.file
for a shorthand of an Image
widget backed by FileImage
.
我认为您也可以将 ExactAssetImage
与图像文件路径一起使用(例如:image.path
),但它应该在 AssetBundle
中。医生对此有何评论:
ExactAssetImage
class
Fetches an image from an AssetBundle
, associating it with the given
scale.
This implementation requires an explicit final assetName and scale on
construction, and ignores the device pixel ratio and size in the
configuration passed into resolve. For a resolution-aware variant that
uses the configuration to pick an appropriate image based on the
device pixel ratio and size, see AssetImage
.
第一次导入dart:io;
然后使用
PhotoView(imageProvider: FileImage(File(path)))
这对我有用:
导入 'dart:io' 作为 io;
FileImage(io.File(_imageFile!.path)) 作为 ImageProvider
其中 _imageFile 是一个 XFile
我创建了一个应用程序,可以下载大量信息供离线使用,其中大部分是照片。在应用程序中,我想使用一个小部件,让我有一个 pan/zoom 效果,但我发现的那些似乎不能很好地与 Image.file() 一起玩,而是使用ImageProviders.
例如,Photo_View只接受继承自ImageProvider的AssetImage和NetworkImage图像,而Image.file()继承自Diagnosticable。我见过的所有软件包都以基本相同的方式运行。
所以,我的问题是如何将 Image.file() 数据转换为 ImageProvider 格式。
而不是 Image.file()
使用 FileImage()
类型 ImageProvider
.
来自医生:
Decodes the given
File
object as an image, associating it with the given scale.See also:
Image.file
for a shorthand of anImage
widget backed byFileImage
.
我认为您也可以将 ExactAssetImage
与图像文件路径一起使用(例如:image.path
),但它应该在 AssetBundle
中。医生对此有何评论:
ExactAssetImage
classFetches an image from an
AssetBundle
, associating it with the given scale.This implementation requires an explicit final assetName and scale on construction, and ignores the device pixel ratio and size in the configuration passed into resolve. For a resolution-aware variant that uses the configuration to pick an appropriate image based on the device pixel ratio and size, see
AssetImage
.
第一次导入dart:io;
然后使用
PhotoView(imageProvider: FileImage(File(path)))
这对我有用:
导入 'dart:io' 作为 io;
FileImage(io.File(_imageFile!.path)) 作为 ImageProvider
其中 _imageFile 是一个 XFile