如何在Flutter中将CameraController的XFile转换为Image类型?

Moh*_*ami 10 camera image dart flutter

FlutterCameraController有一种takePicture()从相机拍照的方法,该方法提供 类型Future<XFile>,因此我需要将其转换Image为包中的类型package:image/image.dart,以便用另一种方法手动裁剪它。

如何转换呢?

小智 21

您可以使用 .path 属性从 XFlie 获取路径,然后使用

Container(
  child: Image.file(File(XFile.path)),
);
Run Code Online (Sandbox Code Playgroud)

  • OP 要求提供图像类型,而不是在小部件中显示图像路径 (2认同)

Moh*_*ami 14

这是我找到的解决方案:

import 'dart:io';
import 'package:image/image.dart' as img;

...

CameraController _controller;

...

final xFile = await _controller.takePicture();
final path = xFile.path;
final bytes = await File(path).readAsBytes();
final img.Image image = img.decodeImage(bytes);

Run Code Online (Sandbox Code Playgroud)