2013-03-26 64 views
0

我已經有這段代碼在richtextbox中插入圖片到表格。Image to InsertImage

  table.ForEachCell(delegate(TableCell cell, int rowIndex, int cellIndex) 
     { 
      if (rowIndex > 0) 
      { 
       if (dataTable.Rows[rowIndex - 1][columnsToDisplay[cellIndex]].GetType().ToString() != "System.Drawing.Bitmap") 
       { 
        document.InsertText(cell.Range.Start, dataTable.Rows[rowIndex - 1][columnsToDisplay[cellIndex]].ToString()); 
       } 
       else if (dataTable.Rows[rowIndex - 1][columnsToDisplay[cellIndex]].GetType().ToString() == "System.Drawing.Bitmap") 
       { 
        var src = dataTable.Rows[rowIndex - 1][columnsToDisplay[cellIndex]]; 
        Image img = new Image(src); // this line cause a problem 
        document.InsertImage(cell.Range.Start, img); 
       } 

      } 
     }); 

插入文字工作正常,但我想插入這給了錯誤的圖片:

Cannot create an instance of the abstract class or interface 'System.Drawing.Image'

回答

0

形象是一個抽象基類,所以它不會有一個構造函數。

使用這個代替:

byte[] srcStream = (byte[])src; 

Stream stream = new MemoryStream(srcStream); 

Image img = Image.FromStream(stream); 
+0

的SRC不是來自文件。它來自數據庫表(字節[])。我試過Image img = Image.FromStream(src); 。我得到了這個錯誤信息:不能從'對象'轉換爲'System.IO.Stream'。 – user1065131 2013-03-26 11:47:22

+0

您應該將您的對象轉換爲一個byte [],然後從該數組創建一個流。看到我編輯的答案 – 2013-03-26 12:00:02

+0

我錯過了,我的src是System.Drawing.Bitmap類型。我該如何演繹這個? – user1065131 2013-03-26 14:52:41

0

試試這個從MSDN

// Create image. 
    Image newImage = Image.FromFile(src);