0

我是新的win8應用程序編程人員,但已被分配編寫一個Windows應用商店應用以捕獲客戶的簽名並將其保存到SQL Server。經過一番研究,我發現了一個很棒的教程 http://www.codeproject.com/Articles/416878/Metro-Paint,它展示瞭如何在本地繪製和保存圖像。我的問題是如何使用教程中的InkManager類將圖像保存到字節數組中,以便將圖像保存到SQLServer?謝謝!將InkManager圖像保存爲字節數組

private async void btnSaveWritingAsImage_Click(object sender, RoutedEventArgs e) 
    { 
     if (MyInkManager.GetStrokes().Count > 0) 
     { 
      try 
      { 
       Windows.Storage.Pickers.FileSavePicker SavePicker = new Windows.Storage.Pickers.FileSavePicker(); 
       SavePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop; 
       SavePicker.DefaultFileExtension = ".png"; 
       SavePicker.FileTypeChoices.Add("PNG", new string[] { ".png" }); 
       SavePicker.FileTypeChoices.Add("JPG", new string[] { ".jpg" }); 
       StorageFile filesave = await SavePicker.PickSaveFileAsync(); 
       IOutputStream ab = await filesave.OpenAsync(FileAccessMode.ReadWrite); 
       if (ab != null) 
        await MyInkManager.SaveAsync(ab); 
      } 

      catch (Exception) 
      { 
       var MsgDlg = new MessageDialog("Only handwriting can be saved as image.", "Error while saving"); 
       MsgDlg.ShowAsync(); 
      } 
     } 
     else 
     { 
      var MsgDlg = new MessageDialog("Only handwriting can be saved as image.", "Error while saving"); 
      await MsgDlg.ShowAsync(); 
     } 
    } 

回答

0

增加:使用System.Runtime.InteropServices.WindowsRuntime

(IBuffer.ToArray()中定義WindowsRuntimeBufferExtensions);

然後就去做:

var buffer = await FileIO.ReadBufferAsync(image);//replace ab instead of image 
var bytes = buffer.ToArray(); 
+0

Suganthi您好,感謝您的答覆,但我不希望將圖像保存到本地,而不是我想在漆板畫面是轉換成字節數組權用戶點擊保存按鈕後。你能幫我修改代碼嗎? –

相關問題