保存图像到本地数据库在Windows Phone 7

问题描述:

我已经在网上搜索了这个,但我还没有真正得到这个答案。保存图像到本地数据库在Windows Phone 7

正在创建的应用程序的一部分需要用户拍照并将此照片保存到本地数据库。我试图这样做如下,但该方法需要我传递一个位图(System.Windows.Media.Imaging)和所述图像控制是很好的图像(System.Windows.Controls.Image)

public byte[] convertToByte(BitmapImage img) 
     { 
      using (MemoryStream ms = new MemoryStream()) 
      { 
       WriteableBitmap btmap = new WriteableBitmap(img.PixelWidth, img.PixelHeight); 
       Extensions.SaveJpeg(btmap, ms, img.PixelWidth, img.PixelHeight, 0, 100); 
       ms.Seek(0, SeekOrigin.Begin); 
       return ms.ToArray(); 
      }; 
     } 

其它溶液我想假设我的形象所在的应用程序,因为它是由相机

public byte[] convertToByte(Image img) 
     { 
      BitmapImage image = new BitmapImage(); 
      image.CreateOptions = BitmapCreateOptions.None; 
      image.UriSource = new Uri(img.Source.ToString(), UriKind.Relative); 
      WriteableBitmap wbmp = new WriteableBitmap(image); 
      MemoryStream ms = new MemoryStream(); 
      wbmp.SaveJpeg(ms, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100); 
      return ms.ToArray(); 
     } 

捕捉我怎么能重新定义任何的方法来保存图像这是不是这样的范围内?还是有更好的方法来做到这一点? 在此先感谢。

+0

以字节或独立存储方式存储在数据库中? – 2014-10-19 17:41:18

+0

以字节形式存储在数据库中 – Nyandika 2014-10-21 05:12:15

+0

那么您需要的字节来源格式是什么? – 2014-10-21 05:34:07

所以我终于想出了答案。 我一直在追求这件事!

public Byte[] ImageToByteArray(Image img) 
     { 
      try 
      { 
       MemoryStream ms = new MemoryStream(); 
       WriteableBitmap bmp = new WriteableBitmap(img.Source as BitmapSource); 
       bmp.SaveJpeg(ms, bmp.PixelWidth, bmp.PixelHeight, 0, 100); 
       Byte[] bytImage = ms.GetBuffer(); 
       return bytImage; 
      } 
      catch (Exception ex) 
      { 
       return null; 
      } 
     } 

希望得到类似问题的人得到帮助!