【问题标题】:Xamarin forms: How to take picture?Xamarin 形式:如何拍照?
【发布时间】:2019-01-14 09:09:32
【问题描述】:

在我的 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
        });

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

【问题讨论】:

  • 使用可以只捕获图像并在当前页面上显示图像为什么要导航到其他页面?
  • @Kalp 我无法捕获图像。你有什么例子可以参考捕获图像吗?

标签: xamarin xamarin.forms


【解决方案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;

【讨论】:

    【解决方案2】:

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

    在本文中,您将了解如何为 Xamarin.Forms 自定义控件创建自定义渲染器,该控件用于显示来自设备摄像头的预览视频流。

    但是,您需要添加拍摄照片所需的代码。为此,您可以从该应用的自定义渲染器中获得灵感:https://github.com/pierceboggan/Moments

    【讨论】:

    • 有没有使用camera2的自定义渲染器示例?
    • 您可以找到一些有用的信息here,转到第 28 页,共 43 页(或搜索 Camera2)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多