2014-10-09 8 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

바이트 단위로 저장하거나 격리 된 저장소에 저장 하시겠습니까? –

+0

바이트 단위로 db에 저장 – Nyandika

+0

바이트를 필요로하는 소스 형식은 무엇입니까? –

답변

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

비슷한 문제가 발생하면 도움을 얻으십시오.