2014-10-09 57 views
0

我已經在網上搜索了這個,但我還沒有真正得到這個答案。保存圖像到本地數據庫在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

回答

0

所以我終於想出了答案。 我一直在追求這件事!

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; 
      } 
     } 

希望得到類似問題的人得到幫助!

相關問題