在我的xamarin表单应用程序中,我有一个页面,其中有一个小的摄像机视图,我想从该摄像机视图拍摄照片。
如果我想完全导航到新页面并拍照,我知道可以使用像this
这样的插件来完成await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Test",
SaveToAlbum = true,
CompressionQuality = 75,
CustomPhotoSize = 50,
PhotoSize = PhotoSize.MaxWidthHeight,
MaxWidthHeight = 2000,
DefaultCamera = CameraDevice.Front
});
如果我想在现有页面上从相机拍摄照片而不导航到新页面,有人可以建议我需要接近吗?
答案 0 :(得分:1)
微软文档中提供了完整的相机视图示例(带有自定义渲染器):https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/view
在本文中,您将学习如何为Xamarin.Forms自定义控件创建自定义渲染器,该控件用于显示来自设备相机的预览视频流。
但是,您需要添加拍摄照片所需的代码。为此,您可以从此应用的自定义渲染器中获取灵感:https://github.com/pierceboggan/Moments
答案 1 :(得分:1)
要捕获图像,必须将其返回到如下变量:
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Test",
SaveToAlbum = true,
CompressionQuality = 75,
CustomPhotoSize = 50,
PhotoSize = PhotoSize.MaxWidthHeight,
MaxWidthHeight = 2000,
DefaultCamera = CameraDevice.Front
});
然后您可以将图像安装在视图上的图像控制器上,如下所示:
image1.Source = file.Path;