OutputHead.h
上传用户:sz81710966
上传日期:2013-03-01
资源大小:409k
文件大小:1k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. #ifndef OUTPUT_HEAD_H
  2. #define OUTPUT_HEAD_H
  3. bool GetLatticeFontBuf(FILE * fl,
  4.    unsigned char * pOutBuf, 
  5.    int nOutBufLength, 
  6.    int nLatticeWidth, 
  7.    int nLatticeHeight,
  8.    int nLibraryBegin,
  9.    int nUnicode);
  10. /*
  11. 描述:
  12. 根据显示字点阵的宽度和高度以及传入的unicode编码来得到该编码在
  13. Unicode字库中的点阵缓冲;
  14. 参数:
  15. [in]fl unicode字库文件指针
  16. [out]pOutBuf 用于存放点阵缓冲的输出
  17. [in]nOutBuflength 传出缓冲的长度
  18. [in]nLatticeWidth 点阵的宽度(最小为8,最大为32)
  19. [in]nLatticeHeight 点阵的实际高度(最小为8,最大为32)
  20. [in]nLibraryBegin unicode编码点阵字库的起始unicode编码
  21. [in]nUnicode 传入的unicode编码
  22. 返回:
  23. 找到返回 true, 否则返回 false
  24. */
  25. bool GetLatticeFontBuf(FILE * fl,
  26.    unsigned char * pOutBuf, 
  27.    int nOutBufLength, 
  28.    int nLatticeWidth, 
  29.    int nLatticeHeight,
  30.    int nLibraryBegin,
  31.    int nUnicode)
  32. {
  33. if(fl == NULL)
  34. return false;
  35. if(pOutBuf == NULL)
  36. return false;
  37. int nTempWidth = 0;
  38. if(nLatticeWidth <= 8)
  39. nTempWidth = 8;
  40. else if(nLatticeWidth <= 16)
  41. nTempWidth = 16;
  42. else if(nLatticeWidth <= 32)
  43. nTempWidth = 32;
  44. if((nTempWidth*nLatticeHeight/8) > nOutBufLength)
  45. return false;
  46. int nOffset = (nUnicode - nLibraryBegin)*(nTempWidth*nLatticeHeight/8);
  47. int nSeek = fseek(fl, nOffset, SEEK_SET);
  48. if(nSeek != 0)
  49. return false;
  50. fread(pOutBuf, (nTempWidth*nLatticeHeight/8), sizeof(unsigned char), fl);
  51. return true;
  52. }
  53. #endif