如何在 UWP 中将 BitmapImage 对象转换为字节数组?在 .Net 中很容易实现,即使在以前的 WinRT 版本中,在整个互联网上查找但没有成功,其中一种解决方案是使用 WriteableBitmap
,如本 answer 中所述,但在当前版本的 UWP 中,不可能从 BitmapImage 构建 WriteableBitmap,是否有解决方法?
最佳答案
由于您是从图片网址开始的,所以我唯一能想到的方法就是获取图片流。为此,RandomAccessStreamReference.CreateFromUri()
方法非常有用。
Windows.Storage.Streams.IRandomAccessStream random = await Windows.Storage.Streams.RandomAccessStreamReference.CreateFromUri(new Uri("http://...")).OpenReadAsync();
然后我们必须解码流以便能够读取所有像素供以后使用。
Windows.Graphics.Imaging.BitmapDecoder decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(random);
Windows.Graphics.Imaging.PixelDataProvider pixelData = await decoder.GetPixelDataAsync();
终于可以通过这种方式访问像素缓冲区了。
byte[] bytes = pixelData.DetachPixelData();
关于c# - 在 UWP 中将 BitmapImage 转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36108056/