dibapi.h
上传用户:elida16851
上传日期:2022-08-05
资源大小:2048k
文件大小:4k
源码类别:

图形图象

开发平台:

Visual C++

  1. /******************************************************************************** 
  2.  *  DIBAPI.H
  3.  * 
  4.  *  Header file for Device-Independent Bitmap (DIB) API.  Provides 
  5.  *  function prototypes and constants for DIB functions 
  6.  ********************************************************************************/ 
  7. #ifndef __DIBAPI_H_
  8. #define __DIBAPI_H_
  9. //////////////////////////////////////////////////////////
  10. /* Handle to a DIB */ 
  11. #define HDIB HANDLE 
  12. // Dib Header Marker - used in writing DIBs to files 
  13. #define DIB_HEADER_MARKER ((WORD) ('M' << 8) | 'B') 
  14. /* DIB constants */ 
  15. #define PALVERSION 0x300 
  16. /* DIB copy constants */ 
  17. #define PW_WINDOW 1 
  18. #define PW_CLIENT 2
  19. /* DIB Macros*/ 
  20. // WIDTHBYTES performs DWORD-aligning of DIB scanlines.  The "bits" 
  21. // parameter is the bit count for the scanline (biWidth * biBitCount), 
  22. // and this macro returns the number of DWORD-aligned bytes needed  
  23. // to hold those bits. 
  24. #define WIDTHBYTES(bits)    (((bits) + 31) / 32 * 4) 
  25. #define IS_WIN30_DIB(lpbi)  ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER)) 
  26. #define RECTWIDTH(lpRect)   ((lpRect)->right - (lpRect)->left) 
  27. #define RECTHEIGHT(lpRect)  ((lpRect)->bottom - (lpRect)->top) 
  28. #define WaitCursorBegin() HCURSOR hcURSOR = SetCursor(LoadCursor(NULL, IDC_WAIT))
  29. #define WaitCursorEnd() SetCursor(hcURSOR) 
  30.  
  31. /* function prototypes */ 
  32. // DIB initialization
  33. HDIB CreateDIB(DWORD, DWORD, WORD); 
  34. HDIB CreateDefaultDIB(DWORD dwWidth, DWORD dwHeight);
  35. void DestroyDIB(HDIB); 
  36. HDIB LoadDIB (LPTSTR); 
  37. BOOL SaveDIB (HDIB, LPTSTR); 
  38. HDIB ReadDIBFile(HANDLE); 
  39. // DIB attributes
  40. DWORD BytesPerLine(LPBYTE lpDIB);
  41. DWORD BytesPerLine(HDIB hDIB);
  42. DWORD DIBlockSize(HDIB hDIB);
  43. DWORD DIBlockSize(LPBYTE lpDIB);
  44. DWORD DIBHeight (LPBYTE lpDIB); 
  45. DWORD DIBHeight (HDIB hDIB); 
  46. DWORD DIBWidth (LPBYTE lpDIB); 
  47. DWORD DIBWidth (HDIB hDIB); 
  48. WORD DIBNumColors (LPBYTE lpDIB); 
  49. WORD DIBNumColors (HDIB hDIB); 
  50. WORD DIBBitCount (LPBYTE lpDIB); 
  51. WORD DIBBitCount (HDIB hDIB); 
  52. LPBYTE FindDIBBits (LPBYTE lpDIB); 
  53. WORD PaletteSize (LPBYTE lpDIB); 
  54. WORD PaletteSize (HDIB hDIB); 
  55. // DIB display
  56. BOOL PaintBitmap(HDC, LPRECT, HBITMAP, LPRECT, HPALETTE, DWORD);
  57. BOOL PaintDIB(HDC, LPRECT, HDIB, LPRECT, HPALETTE, DWORD);
  58. // DIB operations
  59. HBITMAP DIBToDIBSection(LPBYTE lpDIB);
  60. HBITMAP DIBToDIBSection(HDIB hDIB);
  61. HDIB DIBSectionToDIB(HBITMAP hBitmap);
  62. HDIB ConvertDIBFormat(LPBYTE lpSrcDIB, UINT nWidth, UINT nHeight, UINT nbpp, BOOL bStretch, HPALETTE hPalSrc);
  63. HDIB ConvertDIBFormat(HDIB hDIB, UINT nWidth, UINT nHeight, UINT nbpp, BOOL bStretch, HPALETTE hPalSrc);
  64. HDIB ConvertDIBFormat(LPBYTE lpSrcDIB, UINT nbpp, HPALETTE hPalSrc);
  65. HDIB ConvertDIBFormat(HDIB hDIB, UINT nbpp, HPALETTE hPalSrc);
  66. HDIB BitmapToDIB (HBITMAP, HPALETTE); 
  67. HDIB BitmapToDIB (HBITMAP, HPALETTE, WORD);
  68. HDIB ChangeBitmapFormat (HBITMAP, WORD, DWORD, HPALETTE); 
  69. HBITMAP DIBToBitmap (HDIB hDIB, HPALETTE hPal); 
  70. HDIB ChangeDIBFormat (HDIB, WORD, DWORD); 
  71. BOOL CopyColorTable( LPBITMAPINFO lpTarget, LPBITMAPINFO lpSource, HPALETTE hPalSrc );
  72. // DIB palette
  73. HPALETTE CreateDIBPalette(LPBYTE lpDIB);
  74. HPALETTE CreateDIBPalette(HDIB hDIB); 
  75. BOOL DisplayPalette(HDC hDC, LPRECT lpRect, HPALETTE hPal);
  76. HPALETTE CopyPalette(HPALETTE hPalSrc);
  77. HPALETTE GetSystemPalette(void); 
  78. int PalEntriesOnDevice (HDC hDC); 
  79. HPALETTE CreateIdentifyPalette(HPALETTE hPalSrc);
  80. BOOL MapDIBColorsToPalette(HDIB hDIB, HPALETTE hPalette);
  81. // DIB capture
  82. HBITMAP CopyScreenToBitmap (LPRECT); 
  83. HBITMAP CopyWindowToBitmap (HWND, WORD); 
  84. HBITMAP CopyClientRectToBitmap(HWND hWnd, LPRECT lpRect);
  85. HDIB CopyScreenToDIB (LPRECT); 
  86. HDIB CopyWindowToDIB (HWND, WORD); 
  87. HDIB CopyClientRectToDIB(HWND hWnd, LPRECT lpRect); 
  88. // Color quantization
  89. HPALETTE CreateOctreePalette(HDIB hDIB, UINT nMaxColors, UINT nColorBits);
  90. HPALETTE CreateOctreePalette(LPBYTE lpDIB, UINT nMaxColors, UINT nColorBits);
  91. HANDLE CopyHandle(HANDLE h);
  92. //////////////////////////////////////////////////////////
  93. #endif //__DIBAPI_H_