gpt4 book ai didi

c# - 在 Windows Phone 7 的 C# 中将 Byte[] 转换为图像类型

转载 作者:行者123 更新时间:2023-11-30 13:33:46 25 4
gpt4 key购买 nike

我在将字节数组转换为图像类型以便在 Windows Phone 7 上的应用程序中显示时遇到问题。

数据是从服务器检索的,当我上传和下载数据时它工作正常,但在将它转换回图像格式时我很费力。

任何人都可以为我阐明这个问题吗?

这是我将 Byte 数组转换为 BitmapImage 的方法,

public BitmapImage decodeImage(byte[] array)
{
MemoryStream ms = new MemoryStream(array, 0, array.Length);

// Convert byte[] to Image
ms.Write(array, 0, array.Length);

BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(ms);

return bitmapImage;
}

然后是我尝试将返回的 BitmapImage 设置为我在 XAML UI 中使用的图像框的源的代码。

BitmapImage usrIMG = new BitmapImage();
usrIMG = getJson.decodeImage(userProfile.Photos[0].Image);
profileImage.Source = usrIMG;

我知道代码看起来乱七八糟,我正在声明一些我不需要的东西,我已经摆弄了很长时间,但我完全不知所措。

非常感谢

最佳答案

在快速测试您使用 PhotoChooserTask 的场景时,以下代码对我来说效果很好,并将所选图像存储在字节数组中。您可能还想检查您存储和检索字节数组的代码,以确保那里没有任何丢失。

private byte[] imageBytes;
private void GetPhoto_Click(object sender, RoutedEventArgs e)
{
PhotoChooserTask photoTask = new PhotoChooserTask();
photoTask.Completed += new EventHandler<PhotoResult>(photoTask_Completed);
photoTask.Show();
}

void photoTask_Completed(object sender, PhotoResult e)
{
imageBytes = new byte[e.ChosenPhoto.Length];
e.ChosenPhoto.Read(imageBytes, 0, imageBytes.Length);

// save 'imageBytes' byte array to data base ...
}

private void ShowPhoto_Click(object sender, RoutedEventArgs e)
{
// load 'imageBytes' byte array to data base ...
BitmapImage bitmapImage = new BitmapImage();
MemoryStream ms = new MemoryStream(imageBytes);
bitmapImage.SetSource(ms);
myImageElement.Source = bitmapImage;
}

关于c# - 在 Windows Phone 7 的 C# 中将 Byte[] 转换为图像类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com