为了简单起见,我在我的C#类中有一个名为MyImage的Windows.UI.Xaml.Controls.Image。我想将它转换为byte [],以便我可以将它存储到我的数据库。我不知道如何做到这一点,因为图像是Windows.UI.Xaml.Controls.Image而不是System.Drawing.Image所以我做不到这样的事情:
...
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
如果有人能够写下一个简单的“如何”代码来执行此操作,我将不胜感激,因为我无法弄明白。
答案 0 :(得分:0)
我相信您正在使用位图图像
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 Store App编写代码,建议您修改它。
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);