2014-01-22 3 views
1

장치 카메라를 사용하여 이미지를 캡처하는 클래스가 있습니다. 내 목표는 다른 레이아웃의 캔버스에 캡처 된 이미지를 전달하는 것입니다.어떻게 캡처 된 이미지를 캔버스로 전달할 수 있습니까?

이 레이아웃은 텍스트 상자에 입력 한 메모와 함께 저장됩니다. 메모 및 제목을 저장하고 열 수 있도록하는 방법을 알아 냈지만 캡처 한 항목을 전달하는 방법을 알 수는 없습니다. 이미지를 레이아웃에 저장하고 노트와 함께 저장합니다.

아무에게도 내가 이것에 대해 어떻게 생각하는지에 대한 조언이나 조언이 있습니까?

이것은 이미지 파일을 저장 한 후에 이미지 파일을 다시 읽으려고 시도하는 방법이지만 캔버스에 파일을 읽는 방법을 잘 모르겠습니다. 따라서이 솔루션이 제대로 작동하지 않습니다. 아직 :

if (NavigationContext.QueryString.ContainsKey("note")) 
      { 
       string s2 = ".jpg"; 

       string filename = this.NavigationContext.QueryString["note"]; 
       if (!string.IsNullOrEmpty(filename)) { 
        using (var store = System.IO.IsolatedStorage.IsolatedStorageFile .GetUserStoreForApplication()) 
        using (var stream = new IsolatedStorageFileStream(filename, FileMode.Open, FileAccess.ReadWrite, store)) 


        /* 
        if(filename.Contains(s2)) 
        { 
         StreamReader reader = new StreamReader(stream); 
         this.capturedNoteCanvas = reader.ReadToEnd(); 
         this.noteNameTb.Text = filename; reader.Close(); 
        } 
        else 
        */ 
        { 
         StreamReader reader = new StreamReader(stream); 
         this.noteDataTb.Text = reader.ReadToEnd(); 
         this.noteNameTb.Text = filename; reader.Close(); 
        } 
       } 
      } 

내가 생각하고있어이 같은 것입니다 :

Proposed UI

+0

지금까지 시도한 내용을 물어볼 수 있습니까? – philorube

+0

네, 당연히 문제의 해결책을 게시 할 것입니다. –

답변

1

근무 재치 CameraCaptureTask 및 비트 맵

스토리지에 WB 저장 cameracapturetask

void cameracapturetask_Completed(object sender, PhotoResult e) 
     { 
      try 
      { 
       if (e.TaskResult == TaskResult.OK) 
       { 
        BitmapImage bmp = new BitmapImage(); 
        bmp.SetSource(e.ChosenPhoto); 
        WritableBitmap wb=new WritableBitmap (bmp.PixelWidth,bmp.PixelHeight); 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

에서 writableBitmap 객체를 촬영 //

      using (MemoryStream stream = new MemoryStream()) 
          { 
           wb.SaveJpeg(stream, (int)bmp.PixelWidth, (int)bmp.PixelHeight, 0, 100); 
           using (IsolatedStorageFileStream local = new IsolatedStorageFileStream(App.PageName, FileMode.Create, mystorage)) 
           { 
            local.Write(stream.GetBuffer(), 0, stream.GetBuffer().Length); 
           } 
          } 

// 캔버스는 캔버스를 이미지를 포함하고있는 경우

캔버스

에서 WritableBitmap 촬영 높이 및 너비 특성에 따라 달라집니다.

WritableBitmap wb= new WritableBitmap(canvascontrol,null); 

은 캔버스를 가져 와서 writablebitmap 객체 내에 저장 한 다음 추가 이미지 조작에 사용할 수 있습니다.

관련 문제