2011-02-16 217 views
4

我有一個jp2的字節數組,我該如何將其轉換爲JPG文件?謝謝將jp2的byte []轉換爲jpg文件

感謝所有的答案。我做了一些分歧,差不多成功了。我是這樣做的:

using (var reader = command.ExecuteReader()) 
       { 
        while (reader.Read()) 
        { 
         String id = (String)reader["ID"]; 
         blob = (byte[])reader["Data"]; 

         using (MemoryStream ms = new MemoryStream(blob)) 
         { 
          FIBITMAP dib = FreeImage.LoadFromStream(ms);        
          if (dib.IsNull) 
          { 
           continue; 
          }       
          string jpgName = getJpgName(id); 
          FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, dib, jpgName, FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYNORMAL); 
         } 
        } 
       } 

我從數據庫中讀取byte[]。現在又出現了另一個問題。存在內存泄漏!有人可以挑選出來嗎?

回答

2

我們沒有任何內置的.Net來做到這一點,但是,您可以使用FreeImage這是一個免費的庫,可以做到這一點。

Here is an Example on doing this

FIBITMAP dib = FreeImage.LoadEx("test.jp2"); 
//save the image out to disk  
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, dib, "test.jpg", FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYNORMAL); 
//or even turn it into a normal Bitmap for later use 
Bitmap bitmap = FreeImage.GetBitmap(dib); 

對於從字節流ü可以試試這個轉換:

byte[] myByte = new byte[10]; 
MemoryStream theMemStream = new MemoryStream(); 
theMemStream.Write(myByte, 0, myByte.Length); 
FreeImageBitmap fbm = FreeImageBitmap.FromStream(theMemStream); 
fbm.Save("text.jpg",FREE_IMAGE_STREAM.FIF_JPEG); 
+0

我沒有看到支持的格式列表JP2。 – 2011-02-16 08:19:23