【问题标题】:How to take high quality photo from integrated camera in WPF如何从 WPF 中的集成相机拍摄高质量照片
【发布时间】:2021-11-17 14:22:54
【问题描述】:

我正在实施 WPF 应用程序,我需要从集成相机拍摄高质量照片。到目前为止,我已经成功地捕获视频并从中获取帧(例如在此处描述:Wpf and C # capture webcam and network cameras)。

但这不是我想要的 - 因为视频帧质量不是很好。我有 MS Surface 4 Pro,它有 8Mpx 摄像头,支持全高清视频,通过上述方法,我可以从中获得全高清帧。但我想要完整的 8Mpx 图片,就像可以在本机 Windows 相机应用程序中拍摄一样。

在 UWP 中,我可能会成功使用 CameraCaptureUI 类,但我没有找到 WPF 的任何线索。

有人知道如何实现吗?

【问题讨论】:

  • 显示你正在使用的实际捕获代码,供参考
  • 我测试了几个捕获库,如 WPF MediaKit、WpfCap、OpenCVSharp。使用他们的示例应用程序。但它们都以相同的原理工作 - 从视频流中获取帧,该帧不提供我设备上可用的最高分辨率。

标签: c# wpf camera photo


【解决方案1】:

如果您的应用将在 Windows 10 或更高版本上运行,您现在可以在 WPF 应用程序中使用 Windows 10 中的大多数 API。

https://blogs.windows.com/windowsdeveloper/2019/04/30/calling-windows-10-apis-from-a-desktop-application-just-got-easier/

【讨论】:

  • 看起来很有趣。你能提供一些如何使用这个 API 控制相机的例子吗?主要是我需要显示预览并拍照。
  • 我可以看看我是否可以挖掘出一些东西,但是一旦你添加了 nuget 包,你应该能够导入相同的命名空间并使用相同的代码和普通的 UWP 应用程序。我认为您也可以在 WPF 中托管 UWP 控件 - docs.microsoft.com/en-us/windows/apps/desktop/modernize/…
  • 该控件托管对我不起作用 - “面向 .NET 5 的应用程序或任何版本的 .NET Framework 的应用程序尚不支持 XAML 岛” - 我的目标是.NET 框架 4.8
【解决方案2】:

我发现 XAML Islands 可以与 .NET Framework 4.8 一起使用。所以我已经能够使用 UWP 组件 MediaCapture 和 CaptureElement 实现 WPF 解决方案。有了它,我可以拍摄全分辨率的照片,这是我的目标。

可以在此处找到简单的示例项目:https://github.com/ondrasvoboda/WPFCamera,将其视为概念证明。

【讨论】:

    猜你喜欢
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多