当前位置:  开发笔记 > 编程语言 > 正文

在Windows Phone 8.1 Runtime中将BitmapImage转换为byte []数组

如何解决《在WindowsPhone8.1Runtime中将BitmapImage转换为byte[]数组》经验,为你挑选了1个好方法。

有一些示例可以执行此操作,但它们适用于Windows Phone 8.0或8.1 Silverlight.

但是如何为Windows Phone 8.1 Runtime执行此操作?



1> Rob Caplan -..:

您无法从Windows.UI.Xaml.Media.Imaging中提取像素.BitmapImage.

最通用的解决方案是使用WriteableBitmap而不是BitmapImage.这些类都是BitmapSources,几乎可以互换使用.的WriteableBitmap的提供通过其它的像素数据访问PixelBuffer属性:

byte[] pixelArray = myWriteableBitmap.PixelBuffer.ToArray(); // convert to Array
Stream pixelStream = wb.PixelBuffer.AsStream();  // convert to stream

否则,您需要从BitmapImage从中获取像素.根据BitmapImage的初始化方式,您可以从其UriSource属性中找到它的来源.所述的WinRT的Xaml工具包具有扩展方法FromBitmapImage从根据它的一个UriSource的BitmapImage创建WriteableBitmap的.

一个丑陋的选择是将BitmapImage渲染为Image,基于Image创建RenderTargetBitmap,然后使用RenderTargetBitmap获取其Pixels.CopyPixelsAsync()

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有