C# 将Windows.UI.Xaml.Controls.Image转换为字节[]Windows phone8.1

C# 将Windows.UI.Xaml.Controls.Image转换为字节[]Windows phone8.1,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,为了简单起见,我在C#类中有一个名为MyImage的Windows.UI.Xaml.Controls.Image。我想将其转换为字节[],以便将其存储到数据库中。由于图像是Windows.UI.Xaml.Controls.image而不是System.Drawing.image,我不知道如何执行此操作,因此我无法执行类似操作: ... MemoryStream ms = new MemoryStream(); imageIn.Save(ms,System.Drawing.Imaging.Im

为了简单起见,我在C#类中有一个名为MyImage的Windows.UI.Xaml.Controls.Image。我想将其转换为字节[],以便将其存储到数据库中。由于图像是Windows.UI.Xaml.Controls.image而不是System.Drawing.image,我不知道如何执行此操作,因此我无法执行类似操作:

...
 MemoryStream ms = new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
   return  ms.ToArray();

如果有人能写下一个简单的“如何”代码来做这件事,我将不胜感激,因为我就是搞不懂

我相信您当时使用的是位图图像

myImage = new BitmapImage(new Uri("YourImagePath", UriKind.Absolute));
MemoryStream ms = new MemoryStream();
WriteableBitmap wb = new WriteableBitmap(myImage);
wb.SaveJpeg(ms, myImage.PixelWidth, myImage.PixelHeight, 0, 100);
byte[] imageBytes = ms.ToArray();
这适用于Windows Phone,但如果您正在为Windows应用商店应用程序编写代码,则建议您对其进行修改

myImage = new BitmapImage(new Uri("YourImagePath"));
RandomAccessStreamReference rasr = RandomAccessStreamReference.CreateFromUri(bitmapImage.UriSource);
var streamWithContent = await rasr.OpenReadAsync();
byte[] buffer = new byte[streamWithContent.Size];
await streamWithContent.ReadAsync(buffer.AsBuffer(), (uint)streamWithContent.Size, InputStreamOptions.None);

你检查过这个了吗?顺便提一下我不确定是否支持Gif格式文件。请查看图像控件上的ImageSource。调试时使用您的工具。但是,我的映像是在内存中创建的。它不在UI中。因此,步骤myImage=new BitmapImage(新Uri(“yourimagepath”))对我无效。在这方面你能帮我吗?你能分享一下你在内存中创建的代码片段吗;img.maxDimension=500;img.HorizontalAlignment=拉伸。无;我希望我说得很清楚。关于如何将此图像()转换为可写位图,有什么想法吗?