1 colorBar介紹
colorBar主要是指一些圖像處理中使用的常見純色或者漸變色條。colorBar用途可作為測試樣圖來驗證某些圖像算法的效果,從而避免圖像內容或者硬件對圖像的干擾,使圖像算法能夠達到預期效果。colorBar常見類型如下:
(1) 純色圖像

(2) 水平4條彩色條紋

(3) 垂直4條彩色條紋

(4) 垂直8條彩色條紋

(5) 純色背景上純色目標

2 colorBar生成實現源碼(以漸變條為例)
1 /* 2 文件: ColorBar.h 3 功能: 繪制顏色漸變的條形Bar 4 */ 5 enum {GRAY=0,RED=1,GREEN=2,BLUE=3}; 6 class CColorBar 7 { 8 public: 9 CColorBar(); 10 virtual ~CColorBar(); 11 void SetColorMode(int mode); 12 void DrawColorBar(CRect &client,CClientDC &dc); 13 private: 14 UINT m_mode; 15 };
1 /* 2 文件: ColorBar.cpp 3 功能: 繪制顏色漸變的條形Bar 4 */ 5 CColorBar::CColorBar() 6 { 7 m_mode=GRAY; 8 } 9 10 CColorBar::~CColorBar() 11 { 12 13 } 14 15 void CColorBar::SetColorMode(int mode) 16 { 17 m_mode=mode; 18 } 19 20 void CColorBar::DrawColorBar(CRect &client,CClientDC &dc) 21 { 22 CRect m_tab; 23 int N=255; 24 COLORREF rgb; 25 double dh=(double) client.Height()/N; 26 CBrush *pBrush=NULL; 27 dc.Rectangle(client); 28 for(int i=0;i<N;i++) 29 { 30 m_tab.left =client.left; 31 m_tab.right =client.right; 32 m_tab.bottom =client.bottom -i*dh; 33 m_tab.top =m_tab.bottom -dh; 34 35 switch(m_mode) 36 { 37 case GRAY: 38 rgb=RGB(i,i,i); 39 break; 40 case RED: 41 rgb=RGB(i,0,0,); 42 break; 43 case GREEN: 44 rgb=RGB(0,i,0); 45 break; 46 case BLUE: 47 rgb=RGB(0,0,i); 48 break; 49 default: 50 break; 51 } 52 53 pBrush=new CBrush(rgb); 54 dc.FillRect(m_tab,pBrush); 55 56 } 57 58 delete pBrush; 59 pBrush=NULL; 60 }
1 CColorBar bar; 2 CClientDC dc(this); 3 CRect m_bar(100,10,150,300); 4 bar.SetColorMode(RED); 5 bar.DrawColorBar(m_bar,dc);
運行后輸出如下:

