DIBAPI.H
上传用户:renhuadsj
上传日期:2008-11-19
资源大小:1466k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. // dibapi.h
  2. #ifndef _INC_DIBAPI
  3. #define _INC_DIBAPI
  4. // DIB句柄
  5. DECLARE_HANDLE(HDIB);
  6. // DIB常量
  7. #define PALVERSION   0x300
  8. /* DIB宏 */
  9. // 判断是否是Win 3.0的DIB
  10. #define IS_WIN30_DIB(lpbi)  ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER))
  11. // 计算矩形区域的宽度
  12. #define RECTWIDTH(lpRect)     ((lpRect)->right - (lpRect)->left)
  13. // 计算矩形区域的高度
  14. #define RECTHEIGHT(lpRect)    ((lpRect)->bottom - (lpRect)->top)
  15. // 在计算图像大小时,采用公式:biSizeImage = biWidth' × biHeight。
  16. // 是biWidth',而不是biWidth,这里的biWidth'必须是4的整倍数,表示
  17. // 大于或等于biWidth的,离4最近的整倍数。WIDTHBYTES就是用来计算
  18. // biWidth'
  19. #define WIDTHBYTES(bits)    (((bits) + 31) / 32 * 4)
  20. // PCX文件头结构
  21. typedef struct{
  22.  BYTE bManufacturer;
  23.  BYTE bVersion;
  24.  BYTE bEncoding;
  25.  BYTE bBpp;
  26.  WORD wLeft;
  27.  WORD wTop;
  28.  WORD wRight;
  29.  WORD wBottom;
  30.  WORD wXResolution;
  31.  WORD wYResolution;
  32.  BYTE bPalette[48];
  33.  BYTE bReserved;
  34.  BYTE bPlanes;
  35.  WORD wLineBytes;
  36.  WORD wPaletteType;
  37.  WORD wSrcWidth;
  38.  WORD wSrcDepth;
  39.  BYTE bFiller[54];
  40. } PCXHEADER;
  41. // 函数原型
  42. BOOL      WINAPI  PaintDIB (HDC, LPRECT, HDIB, LPRECT, CPalette* pPal);
  43. BOOL      WINAPI  CreateDIBPalette(HDIB hDIB, CPalette* cPal);
  44. LPSTR     WINAPI  FindDIBBits (LPSTR lpbi);
  45. DWORD     WINAPI  DIBWidth (LPSTR lpDIB);
  46. DWORD     WINAPI  DIBHeight (LPSTR lpDIB);
  47. WORD      WINAPI  PaletteSize (LPSTR lpbi);
  48. WORD      WINAPI  DIBNumColors (LPSTR lpbi);
  49. WORD   WINAPI  DIBBitCount(LPSTR lpbi);
  50. HGLOBAL   WINAPI  CopyHandle (HGLOBAL h);
  51. BOOL      WINAPI  SaveDIB (HDIB hDib, CFile& file);
  52. HDIB      WINAPI  ReadDIBFile(CFile& file);
  53. BOOL      WINAPI  DIBToPCX256(LPSTR lpDIB, CFile& file);
  54. HDIB      WINAPI  ReadPCX256(CFile& file);
  55. DWORD BytesPerLine(LPBYTE lpDIB);
  56. DWORD BytesPerLine(HDIB hDIB);
  57. #endif //!_INC_DIBAPI