B. *_*non 3 c# bytearray bitmapimage system.array windows-runtime
根据这个,可以使用以下代码将字节数组转换为BitmapImage:
public static async Task<BitmapImage> ByteArrayToBitmapImage(this byte[] byteArray)
{
if (byteArray != null)
{
using (var stream = new InMemoryRandomAccessStream())
{
await stream.WriteAsync(byteArray.AsBuffer());
var image = new BitmapImage();
stream.Seek(0);
image.SetSource(stream);
return image;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到," 'System.Array'不包含'AsBuffer'的定义,并且没有扩展方法'AsBuffer'可以找到类型'System.Array'的第一个参数'(你是否错过了使用指令或者装配参考?) "
是"var stream"赋值太模糊(隐式类型),我需要为"stream"var指定一个特定的数据类型吗?System.Array以外的东西?
也许这一点,来自" Windows Store Apps Succinctly "是一个线索: 缓冲区/字节数组--System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions:此类中的扩展方法提供了在.NET字节数组和WinRT缓冲区内容之间移动的方法,这些内容作为IBuffer实现公开.
...但如果是的话,那对我来说不足以让我知道如何处理它.而不是"TMI",它是"NEI"(没有足够的信息).
问题是编译器没有找到扩展方法 AsBuffer().确保你有一个对命名空间的引用System.Runtime.InteropServices.WindowsRuntime,即
using System.Runtime.InteropServices.WindowsRuntime;
Run Code Online (Sandbox Code Playgroud)
命名空间:System.Runtime.InteropServices.WindowsRuntime
程序集:System.Runtime.WindowsRuntime(在System.Runtime.WindowsRuntime.dll中)