电竞比分网-中国电竞赛事及体育赛事平台

分享

GDI+中發(fā)生一般性錯(cuò)誤之圖片轉(zhuǎn)化為字節(jié)數(shù)組

 orion360doc 2011-06-26
 GDI+中發(fā)生一般性錯(cuò)誤之圖片轉(zhuǎn)化為字節(jié)數(shù)組 收藏 
項(xiàng)目中前一次遇到字節(jié)數(shù)組轉(zhuǎn)化為圖片時(shí)偶爾出現(xiàn)“GDI+中發(fā)生一般性錯(cuò)誤”,這回是圖片轉(zhuǎn)化為字節(jié)數(shù)組時(shí)出現(xiàn)這種情況。經(jīng)研究解決辦法如下:
原代碼(出錯(cuò)代碼)如下:


public static  byte[] imageToByteArray(Image imageIn)
{
      using (MemoryStream ms = new MemoryStream())
      {
            if (imageIn != null)
            {                  
                  imageIn.Save(ms,ImageFormat.Jpeg);                    
            }
       return ms.ToArray();               
       }
}


方法一:


public static  byte[] imageToByteArray(Image imageIn)
{
     using (MemoryStream ms = new MemoryStream())
     {
           if (imageIn != null)
           {
                  Bitmap t=new Bitmap (imageIn);
                  t.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);                   
           }
     return ms.ToArray();               
     }
}
方法二:

public static  byte[] imageToByteArray(Image imageIn)
{
     using (MemoryStream ms = new MemoryStream())
     {
            if (imageIn != null)
            {                  
                 Bitmap pic = new Bitmap(imageIn.Width, imageIn.Height);
                 Graphics g = Graphics.FromImage(pic);
                 g.DrawImage(imageIn, 0, 0, imageIn.Width, imageIn.Height);
                 g.Dispose();
                 pic.Save(ms, ImageFormat.Jpeg);
                 pic.Dispose();                   
            }
     return ms.ToArray();               
      }
}
兩種方法實(shí)際上都是新建了一個(gè)與原圖一模一樣的副本,在木子的技術(shù)空間(http://www.cnblogs.com/szulm/articles/1227060.html)找到這么一句話“Bitmap 對(duì)象或一個(gè) 圖像 對(duì)象從一個(gè)文件, 構(gòu)造時(shí)該文件仍保留鎖定對(duì)于對(duì)象的生存期。 因此, 無(wú)法更改圖像并將其保存回它產(chǎn)生相同的文件。”個(gè)人認(rèn)為發(fā)生GDI+一般性錯(cuò)誤的原因是對(duì)象引用與對(duì)象的生存期的問(wèn)題。


本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/huhai463127310/archive/2008/11/25/3372988.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多