Flutter 相机叠加层
Posted
技术标签:
【中文标题】Flutter 相机叠加层【英文标题】:Flutter Camera Overlay 【发布时间】:2018-10-25 03:41:52 【问题描述】:我一直在为即将到来的项目做一些研究,并希望在自定义形状/半透明 img 后面渲染相机视图,以在拍照时充当指南。
有谁知道解释如何做到这一点的颤振相机插件或教程?
【问题讨论】:
【参考方案1】:您可以使用 Flutter 团队的相机插件进行 Flutter。
https://pub.dartlang.org/packages/camera
然后将您的图像和相机视图放置在 Stack Widget 中,如下所示:
return new Stack(
alignment: FractionalOffset.center,
children: <Widget>[
new Positioned.fill(
child: new AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: new CameraPreview(controller)),
),
new Positioned.fill(
child: new Opacity(
opacity: 0.3,
child: new Image.network(
'https://picsum.photos/3000/4000',
fit: BoxFit.fill,
),
),
),
],
);
【讨论】:
有什么办法可以用叠加层保存这个视频吗? 我也想用叠加保存视频?任何建议..@JoseTapizquent【参考方案2】:请访问此repo。此示例使用相机插件。
new AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: Container(
child: Stack(
children: <Widget>[
CameraPreview(controller),
Align(
alignment: Alignment.bottomCenter,
child: Container(
width: double.infinity,
height: 120.0,
padding: EdgeInsets.all(20.0),
color: Color.fromRGBO(00, 00, 00, 0.7),
child: Stack(
children: <Widget>[
Align(
alignment: Alignment.center,
child: Material(
color: Colors.transparent,
child: InkWell(
borderRadius: BorderRadius.all(Radius.circular(50.0)),
onTap: ()
_captureImage();
,
child: Container(
padding: EdgeInsets.all(4.0),
child: Image.asset(
'assets/images/ic_shutter_1.png',
width: 72.0,
height: 72.0,
),
),
),
),
),
Align(
alignment: Alignment.centerRight,
child: Material(
color: Colors.transparent,
child: InkWell(
borderRadius: BorderRadius.all(Radius.circular(50.0)),
onTap: ()
if (!_toggleCamera)
onCameraSelected(widget.cameras[1]);
setState(()
_toggleCamera = true;
);
else
onCameraSelected(widget.cameras[0]);
setState(()
_toggleCamera = false;
);
,
child: Container(
padding: EdgeInsets.all(4.0),
child: Image.asset(
'assets/images/ic_switch_camera_3.png',
color: Colors.grey[200],
width: 42.0,
height: 42.0,
),
),
),
),
),
],
),
),
),
],
),
),
);
.
【讨论】:
【参考方案3】:您现在也可以使用此插件: CamerAwesome
官方插件有一个比例错误,导致覆盖率不好。 这个插件包括闪光灯、变焦、自动对焦……并且不需要初始化。
【讨论】:
【参考方案4】:您可以在我的页面上查看完整代码 https://github.com/Prashantm111/flutter-camera-inscreen-app
【讨论】:
以上是关于Flutter 相机叠加层的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter 中的盒子装饰上的图像上添加不透明覆盖