如何在相机上添加矩形叠加层并使用Flutter将图像保存到图库

时间:2019-05-22 14:50:11

标签: flutter camera overlay flutter-layout

我需要像矩形框一样在相机上方添加叠加层,并且需要将图像保存到图库

尝试了基本的抖动相机示例enter image description here

1 个答案:

答案 0 :(得分:0)

如果您不太担心将图像分辨率限制为手机的显示分辨率,则可以选择自动拍摄屏幕截图并保存。

要使其正常工作,您需要Flutter native_screenshot软件包。

  1. 捕获屏幕截图:
  Future<void> takeScreenShot() async{
    String path = await NativeScreenshot.takeScreenshot();
    print(path);
  }

图像将保存在path指示的文件夹中。

  1. 由于该功能可以捕获整个屏幕,因此您可以使用Stack()小部件来显示相机预览和叠加图。简单的build看起来像
  @override
  Widget build(BuildContext context) {
    if (controller == null || !controller.value.isInitialized) {
      return Container();
    }

    return OverflowBox(
      child: Stack(
        children: <Widget>[
          CameraPreview(controller),
          Container(),
    
        ],
      ),
    );
  }

在上面的代码中,您需要初始化相机控制器才能显示CamerarPreview()。您可以编辑Container()子窗口小部件(或与此类似的任何东西)来创建叠加框。