我必須將32位rgb bmp圖像轉換爲24位rgb bmp。32位rgb bmp到C#中的24位rgb bmp問題
這就是我要做的
Bitmap b1=new Bitmap(sorecFileName);
Bitmap b2=new
Bitmap(b1.Size.Width,b1.Size.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
b2.SetResolution(b1.HorizontalResolution, b1.VerticalResolution);
Graphics g=Graphics.FromImage(b2);
g.DrawImage(b1,0,0);
//continue to draw on g here to add text or graphics.
g.Dispose();
b2.Save(destinationFileName);
代碼編譯罰款和24 bpp的生成的輸出圖像,但它不是RGB格式了。這是爲什麼?
我想通了,因爲我有一個庫,它將圖像輸入爲rgb24並顯示它。所以當我試圖將上面的代碼生成的文件作爲函數的輸入時,它會顯示噪聲圖像。
但是,如果我在paint中打開相同的文件並將其保存爲24bpp bmp,並將其輸入到該函數,則圖片顯示正常。我錯過了什麼?
請改善此庫中的錯誤檢查。像這樣的不幸事件並不罕見,它將在某一天再次發生。 – 2011-02-11 11:29:36