关于CameraCaptureUI的几个问题。
1)我可以控制弹出窗口的大小/位置吗?它在我的Win10平板电脑上弹出很小,每次应用需要拍照时放大它真的很烦人!
2)我正在尝试制作与内置相机应用程序质量相当的照片,但我遇到了很多麻烦。只有通过使用croppedSizeInPixels,才能获得更大的质量。有人可以解释为什么这有帮助,如果有更好的方法来提高照片的质量?内置应用程序默认创建大约1MB大小的2592x1944像素图像。如果这是正确的方法我应该以某种方式计算这些维度吗?
captureUI = new CameraCaptureUI();
captureUI.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;
captureUI.PhotoSettings.AllowCropping = true;
captureUI.PhotoSettings.MaxResolution = CameraCaptureUIMaxPhotoResolution.HighestAvailable;
// photo created is approx 576KB
captureUI.PhotoSettings.CroppedSizeInPixels = new Size(3840, 2160);
答案 0 :(得分:0)
1)我可以控制弹出窗口的大小/位置吗?
如您所见,CameraCaptureUI class中没有API可以控制相机捕获UI的大小/位置。对于Windows 8.1,此类提供了一个完整的窗口UI,用于从摄像头捕获音频,视频和照片。但是,在Windows 10中,它是一个弹出窗口。实际上,这个类启动了用于捕获的内置Camera应用程序,您可以在任务管理器中找到它。
如果CameraCaptureUI
无法满足您的要求,并且您希望对捕获操作进行更强大,更低级别的控制,则应使用MediaCapture对象并实现自己的捕获体验。有关更多信息,请参阅Capture photos and video with MediaCapture。
2)我正在尝试制作与内置相机应用程序质量相当的照片。
CameraCaptureUI
类实际上启动了内置的Camera应用程序以进行捕获,但它没有提供很多方法来指定返回照片的属性。我们只能使用 CroppedSizeInPixels 来指定所拍摄照片的分辨率。我们可以将此属性设置为足够大的值。如果指定的尺寸大于任何可用分辨率,则首先将捕获的照片缩放到足够大的尺寸。如果您想控制捕获图片的分辨率,我还建议您使用GetMediaStreamProperties和SetMediaStreamPropertiesAsync方法使用MediaCapture。有关详细信息,请参阅Camera resolution sample。