我在UWP應用程序的工作,其中從攝像頭與線存儲所拍攝的圖像此CameraHelper類:BitmapDecoder.CreateAsync(randomAccessStream);導致「組件不能被發現」異常
MediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateBmp(), img);
凡IMG事先聲明爲IMG =新InMemoryRandomAccessStream( );. - 現在
,因爲我也需要這個存儲到數據庫中,我需要它轉換成字節數組,我這樣做:
bytearray = new byte[img.Size];
await img.ReadAsync(bytearray.AsBuffer(), (uint) img.Size, InputStreamOptions.None);
現在,在後面的代碼,我嘗試這個字節組轉換回到InMemoryRandomAccessStream與:
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
await randomAccessStream.WriteAsync(img.AsBuffer());
randomAccessStream.Seek(0);
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(randomAccessStream);
最後一行導致從問題的標題異常!有任何想法嗎?我確信InMemoryRandomAccessStream沒問題,因爲我實際上可以將它轉換爲SoftwareBitmapSource,並且正確地在屏幕上看到了圖像。
你能告訴你要實現的目標是什麼?如果'img'是一個* Straem *,爲什麼不簡單地使用'BitmapDecoder decoder = await BitmapDecoder.CreateAsync(img);'? – Romasz
我試圖將IMG保存的圖像存儲到數據庫中,這意味着我需要將它轉換爲字節數組,然後(從數據庫中檢索時)將其重新轉換回InMemoryRandomAccessStream,以便我可以將其顯示爲位圖。 –
所以第二部分只是爲了從數據庫中讀取圖像。你看過[這篇文章](https://marcominerva.wordpress.com/2013/04/15/how-to-convert-a-byte-array-to-image-in-a-windows-store -app /)? – Romasz