2016-08-22 61 views
0

我在asp.net MVC中非常新穎。我的核心目標是將.tiff圖像轉換爲.jpeg格式,而不保存爲文件。爲此我調用單獨的文件(例如:gettiff.aspx)在瀏覽器中顯示.tiff圖像。如何使用C#將多頁Blob .Tiff圖像中的第一頁轉換並顯示爲.Jpeg#

我做了什麼? 我將多頁.tiff圖像作爲blob保存到數據庫中。

我需要什麼? 需要顯示多頁.tiff圖像轉換爲.JPEG在查看

我成功地完成了什麼? 要轉換單頁.tiff圖像(文件/ Blob),我沒有任何問題轉換爲.jpeg並查看以及在查看

我卡在哪裏? 要轉換多頁.TIFF圖像(文件/ BLOB),我有轉換爲.JPEG期間的問題,在圖中觀察以及

示例代碼: C#:以gettiff.aspx文件

while (Reader.Read()) 
         { 
          Bitmap bImage = ByteToImage((byte[])Reader["refImage"]);        
          byte[] array1 = ImageToByte2(myBmp); 
         Response.ContentType = "image/jpeg"; // if your image is a jpeg of course 
         Response.BinaryWrite((byte[])array1); 

         } 

斑點轉換爲位圖:

public static Bitmap ByteToImage(byte[] blob) 
{ 
    using (MemoryStream mStream = new MemoryStream()) 
    { 
     mStream.Write(blob, 0, blob.Length); 
     mStream.Seek(0, SeekOrigin.Begin); 

     Bitmap bm = new Bitmap(mStream); 
     return bm; 
    } 
} 

轉換位圖以字節組(這將讓作爲.JPEG格式)

public static byte[] ImageToByte2(Bitmap img) 
     { 
      byte[] byteArray = new byte[0]; 

      using (MemoryStream stream = new MemoryStream()) 
      { 
       //System.Drawing.Image.FromStream(stream); 
       img.Save(stream, System.Drawing.Imaging.ImageFormat.Png); 
       byteArray = stream.ToArray(); 
      } 
      return byteArray; 
     } 

在View:

<img src="../[email protected]&&ImgType=CBlob" width="150" height="100" style=" border:groove;border-color: #ff0000;" /> 

我需要爲JPEG格式轉換,並從多頁.TIFF BLOB只顯示第一頁。同時節省了流發生

問題 -

任何人都可以幫我「GDI +中發生一般性錯誤」 ......

回答

0

我找到了解決方案here。通過讓該單行代碼,我可以能夠顯示.TIFF團塊圖像

示例代碼:

public static Bitmap ByteToImage(byte[] blob) 
     { 
      Bitmap bm = (Bitmap)((new ImageConverter()).ConvertFrom(blob)); 
      return bm; 
     } 

而不是使用內存流,如果我用這個轉換將能夠獲得在觀看圖片。剩餘代碼與問題

相關問題