我試圖通過此API實現圖像捕獲,並且需要通過桌面應用程序實現。MediaCapture Windows 8桌面應用程序 - 無法啓動它
問題是,當我將圖像保存到一個文件(與CapturePhotoToStorageFileAsync
)我得到一個黑暗的圖片(幾乎是黑色),或者我得到零大小的文件。
我的代碼是非常簡單的,但:
MediaCapture = new MediaCapture();
await mediaCapture.InitializeAsync();
Windows.Storage.StorageFile photoStorageFile;
String PHOTO_FILE_NAME = "photo.jpg";
photoStorageFile = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFileAsync(PHOTO_FILE_NAME, Windows.Storage.CreationCollisionOption.GenerateUniqueName);
ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg();
await mediaCapture.CapturePhotoToStorageFileAsync(imageProperties, photoStorageFile);
我讀到它另一個線程: Captured photos are black when using MediaCapture on Windows Phone 8.1
的問題是,MediaCapture.StartPreviewAsync
引發異常「意外的錯誤已請求的操作出錯」 ,我想這是MediaElement,我沒有(再次,桌面)的原因。
我也很高興找到工作的例子,當我搜索,我沒有找到實現的桌面應用程序MediaCapture任何真正的樣品,我看到一篇文章,但沒有附代碼: http://blogs.msdn.com/b/eternalcoding/archive/2013/10/29/how-to-use-specific-winrt-api-from-desktop-apps-capturing-a-photo-using-your-webcam-into-a-wpf-app.aspx
我還發現其他人也詢問了一個樣品,但沒有真正的答案...
我怎樣才能得到一個工作樣本?
謝謝Matthieu!我想知道是否有可能在C#中實現它? – Programmer
到目前爲止,我還沒有找到一個C#方法。 WPF需要某種CaptureElement,它依賴於DirectX和Media Foundation。他們有一些C#投影(SharpDX等),所以也許有辦法將C++代碼翻譯成C#。 –