论坛灌水字体(获取文字点阵).rar

 获取文字点阵的主要代码如下:

C++代码
  1. void CTestFontDlg::GetFontMatrix(unsigned int nFontSize,   
  2.         wchar_t *szFontName,wchar_t* szWord,   
  3.         CDC *pDC,CMatrix<bool>* oMatrix)   
  4. {      
  5.     CFont TempFont;   
  6.     TempFont.CreatePointFont(nFontSize*10,szFontName);   
  7.   
  8.     CDC MemDC;   
  9.     //创建兼容DC   
  10.     MemDC.CreateCompatibleDC(pDC);   
  11.     //将字体选入DC   
  12.     MemDC.SelectObject(TempFont);   
  13.   
  14.     //获取字体信息   
  15.     CSize fontSize;   
  16.     GetTextExtentPoint32(MemDC.m_hDC,szWord,1,&fontSize);   
  17.     oMatrix->InitMatrix(   
  18.         fontSize.cy,fontSize.cx);   
  19.   
  20.     CBitmap TempBitmap;   
  21.     TempBitmap.CreateCompatibleBitmap(pDC,   
  22.         fontSize.cx,fontSize.cy);   
  23.   
  24.     MemDC.SelectObject(TempBitmap);   
  25.   
  26.     MemDC.TextOut(0,0,szWord);   
  27.   
  28.     for (int i=0;i<fontSize.cy;i++)   
  29.     {   
  30.         for (int j=0;j<fontSize.cx;j++)   
  31.         {   
  32.             //最关键的地方,判断当前像素是不是黑色。
  33.             COLORREF PixelColor=MemDC.GetPixel(j,i);   
  34.             if ((PixelColor!=-1) && PixelColor==RGB(0,0,0))   
  35.             {   
  36.                 oMatrix->SetElement(i,j,1);   
  37.             }   
  38.             else  
  39.             {   
  40.                 oMatrix->SetElement(i,j,0);   
  41.             }      
  42.         }   
  43.     }   
  44. }  

 


本文链接地址: 论坛灌水字体(获取文字点阵)
https://blog.qingfengju.com/index.asp?id=32

上一篇: 正在用的简单扬声器保护电路
下一篇: 在XP Embedded中使用Enhanced Write Filter(EWF)功能

分类:Win32/C++ 查看次数:7323 发布时间:2009/5/17 22:46:19