Xamarin Forms:如何拍照?

5
在我的Xamarin Forms应用程序中,有一个包含小型相机视图的页面,我想从该相机视图中拍照。如果我想要完全导航到新页面并拍照,我知道可以使用像这个插件来实现。
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
        });

有人能提供建议吗?如果我想在我的现有页面上从相机拍照而不导航到新页面,我需要如何处理?


1
你可以在导航到其他页面的同时捕获图像并在当前页面上显示图像。 - Kalp
@Kalp,我无法捕获图像。你有没有可以参考的捕获图像的例子? - TheDeveloper
2个回答

6
为了捕获图像,您必须将其返回到一个变量中,如下所示:
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;

3

在Microsoft文档中有一个完整的相机视图示例(带有自定义渲染器):https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/view

在这篇文章中,您将学习如何为Xamarin.Forms自定义控件创建一个自定义渲染器,该控件用于显示来自设备相机的预览视频流。

然而,您需要添加必要的代码来拍摄照片。关于这个,您可以从此应用程序的自定义渲染器中获得灵感:https://github.com/pierceboggan/Moments


有没有使用camera2的自定义渲染器的示例? - TheDeveloper
你可以在这里找到一些有用的信息(https://www.scribd.com/document/306878808/Xamarin-Cross-Platform-Development-Cookbook-Sample-Chapter),请前往第28页(共43页)查看(或搜索Camera2)。 - GiampaoloGabba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接