Jos*_*tle 3 c# silverlight xaml image windows-phone-7
我在将Byte数组转换为Image类型以便在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;
}
Run Code Online (Sandbox Code Playgroud)
然后这是我尝试将返回的BitmapImage设置为我在XAML UI中使用的Image框的源的代码.
BitmapImage usrIMG = new BitmapImage();
usrIMG = getJson.decodeImage(userProfile.Photos[0].Image);
profileImage.Source = usrIMG;
Run Code Online (Sandbox Code Playgroud)
我知道代码看起来很混乱,我宣称我不需要的东西,我已经摆弄它多年了,我完全不知所措.
非常感谢
以下代码适用于我对使用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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11969 次 |
| 最近记录: |