使用CImage的通常方法:
(1) 打開應用程序的stdafx.h文件添加CImage類的包含文件:#include <atlimage.h>
(2) 定義一個CImage類對象,而後調用CImage::Load方法裝載一個外部圖像文件。
(3) 調用CImage::Draw方法繪製圖像。
(4) CImage::Save方法能將一個圖像文件按另外一種格式來保存。
欲將彩色圖變爲黑白圖,能夠將圖片中每一個象素點的RGB值歸一化,即R=G=B。能夠經過兩種方法來實現:
(1)能夠將RGB的值設爲R、G、B中任意一個;
(2)令RGB的值等於(R+G+B)/3。(推薦)
方法二:
將一幅彩色圖片變成黑白圖code
void BmpControl::Exchange(CString fname) //fname爲欲變換的圖片文件名 { CImage *image=new CImage(); //建立CImage對象 image->Load(fname); //載入圖片 COLORREF pixel; //用於保存象素信息 int maxY = image->GetHeight(), //圖片高度 maxX = image->GetWidth(); //圖片寬度 byte r,g,b,avg; //依次讀取每一個象素點,並做相應的轉換 for(int x=0;x { for(int y=0;y { pixel=image->GetPixel(x,y); //獲取象素點 //獲得R、G、B、的值 r=GetRValue(pixel); g=GetGValue(pixel); b=GetBValue(pixel); //處理象素點 avg=(int)((r+g+b)/3); //寫回圖片 image->SetPixelRGB(x,y,avg,avg,avg); } } //保存圖片 image->Save(fname); }