2016-01-28 106 views
2

我的代码:图像捕捉流SoftwareBitmap

var stream = new InMemoryRandomAccessStream(); 
ImageEncodingProperties properties = ImageEncodingProperties.CreateJpeg(); 
await _mediaCapture.CapturePhotoToStreamAsync(properties, stream); 
IBuffer buffer = new byte[stream.Size].AsBuffer(); 
await stream.ReadAsync(buffer, (uint)stream.Size, InputStreamOptions.None); 
SoftwareBitmap sfbmp = SoftwareBitmap.CreateCopyFromBuffer(buffer, BitmapPixelFormat.Bgra8, 4176, 3120); // Exception is thrown here 

例外:

内存不足的响应

老实说,我不知道有关的位图缓存东西所以任何人都帮我?

回答

1

我解决它通过使用BitmapDecoder

var stream = new InMemoryRandomAccessStream(); 
ImageEncodingProperties properties = ImageEncodingProperties.CreateJpeg(); 
await _mediaCapture.CapturePhotoToStreamAsync(properties, stream); 
var decoder = await BitmapDecoder.CreateAsync(stream); 
SoftwareBitmap sfbmp = await decoder.GetSoftwareBitmapAsync();