[英]covert from base64 to image using c# in windows 8.1
使用c#windows 8.1 *************從base64轉換為圖像的任何可執行功能。 我試過了 :
public Image byteArrayToImage(byte[] byteArrayIn)
{
Image returnImage = null;
using (MemoryStream ms = new MemoryStream(byteArrayIn))
{
returnImage = Image.FromStream(ms);
}
return returnImage;
}
FromStream不適合Windows 8.1
首先, Windows.UI.Xaml.Controls.Image
類是一個控件對象,而不是實際的位圖類型對象。 您真正想要的是一個BitmapImage
。 當然,由於這種誤解,您的代碼很可能會遇到其他問題。 您沒有顯示此方法的調用者,但是如果您在此處混淆了類型,則可能已在其他地方混淆了它。 因此,必須將其修復。
其次,與WinRT中的許多事情一樣,執行所需的操作比使用桌面API的要復雜一些。 :(
也就是說,這樣的事情應該起作用:
public Windows.UI.Xaml.Media.Imaging.BitmapImage byteArrayToImage(byte[] byteArrayIn)
{
using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
{
await stream.WriteAsync(byteArrayIn.AsBuffer(0, byteArrayIn.Length));
stream.Seek(0);
BitmapImage image = new BitmapImage();
await image.SetSourceAsync(stream);
return image;
}
}
然后,您可以將該對象設置為Image
控件對象的Source
屬性。
一些注意事項:
Bitmap
對象要求Stream
實例保持未處置狀態。 對於WinRT,在位圖初始化后使用AFAIK處理流就可以了。 AsBuffer()
方法是擴展方法。 您將需要using System.Runtime.InteropServices.WindowsRuntime;
在您的代碼中(如果尚不可用)。 也可以看看:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.