如何改變Bitmap中的PixelFormat呢?
很可惜此屬性無法直接改變,因為Bitmap在建立的時候就已決定內部的像素格式
因此只能重新建立一個Bitmap,但我們如果想要這個新建立的Bitmap有相同的影像
可以藉由GDI+繪製到新建立的Bitmap之中
今天假設想將Bitmap轉成32bit
那範例如下:
那範例如下:
public Bitmap ChangePixelFormatTo32Argb(Bitmap SourceBmp,bool IsDispose)
{ /*宣告新的Bitmap,尺寸與輸入的相同*/
Bitmap ResultBmp = new Bitmap(SourceBmp.Width, SourceBmp.Height, PixelFormat.Format32bppRgb); /*將輸入的影像繪製到新宣告的Bitmap*/ using (var gr = Graphics.FromImage(ResultBmp)) gr.DrawImage(SourceBmp, new Rectangle(0, 0, SourceBmp.Width, SourceBmp.Height));
if (IsDispose) SourceBmp.Dispose();
return ResultBmp;}
留言
張貼留言