CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  图形处理/算法

200 分求周长发的处理 bmp 图象的算法程序

楼主liweiliwei2ooo(我是新手)2003-05-03 17:34:47 在 VC/MFC / 图形处理/算法 提问

如题。  
  看好了后,立马给分! 问题点数:100、回复次数:8Top

1 楼liweiliwei2ooo(我是新手)回复于 2003-05-03 17:35:26 得分 0

upTop

2 楼Skt32(荒城之月)回复于 2003-05-03 19:46:35 得分 0

/********************************************************************************    
    *     DIBAPI.H  
    *    
    *     Header   file   for   Device-Independent   Bitmap   (DIB)   API.     Provides    
    *     function   prototypes   and   constants   for   DIB   functions    
    ********************************************************************************/    
   
  #ifndef   __DIBAPI_H_  
  #define   __DIBAPI_H_  
  //////////////////////////////////////////////////////////  
   
  /*   Handle   to   a   DIB   */    
  #define   HDIB HANDLE    
   
  //   Dib   Header   Marker   -   used   in   writing   DIBs   to   files    
  #define   DIB_HEADER_MARKER ((WORD)   ('M'   <<   8)   |   'B')    
   
  /*   DIB   constants   */    
  #define   PALVERSION 0x300    
   
  /*   DIB   copy   constants   */    
  #define   PW_WINDOW 1    
  #define   PW_CLIENT 2  
   
  //   Image   position   in   Canvas  
  #define   LEFT_UP 1  
  #define   CENTER_UP 2  
  #define   RIGHT_UP 3  
  #define   LEFT_CENTER 4  
  #define   CENTER_CENTER 5  
  #define   CENTER_RIGHT                 6  
  #define   LEFT_DOWN 7  
  #define   CENTER_DOWN 8  
  #define   RIGHT_DOWN 9  
   
  /*   Gray   Method   */  
  #define   MEAN_GRAY 0  
  #define   MAXIMUM_GRAY 1  
  #define   WEIGHT_GRAY 2  
   
  /*   Color   Model   */  
  #define   RGB_COLOR 0  
  #define   CMYK_COLOR 1  
  #define   HSI_COLOR 2  
  #define   HLS_COLOR 3  
  #define   UNDEFINED (-1.0)  
   
  //   Separate   color  
  #define   SEPARATE_RED 1  
  #define   SEPARATE_GREEN 2  
  #define   SEPARATE_BLUE 3  
   
  //   Filte   color  
  #define   FILTE_RED 1  
  #define   FILTE_GREEN 2  
  #define   FILTE_BLUE 3  
   
  //   Filter   algorithm  
  #define   FILTER1 1  
  #define   FILTER2 2  
  #define   FILTER3 3  
   
  //   Edge   enhancement   algorithm  
  #define   VERT 1  
  #define   HORZ 2  
  #define   VERTHORZ 3  
  #define   NORTH 4  
  #define   NORTHEAST 5  
  #define   EAST 6  
  #define   SOUTH 7  
  #define   SOUTHEAST 8  
  #define   SOUTHWEST 9  
  #define   WEST 10  
  #define   NORTHWEST 11  
  #define   LAP1 12  
  #define   LAP2 13  
  #define   LAP3 14  
  #define   LAP4 15  
  #define   SOBEL 16  
  #define   HOUGH 17  
   
  /*   DIB   Macros*/    
  //   WIDTHBYTES   performs   DWORD-aligning   of   DIB   scanlines.     The   "bits"    
  //   parameter   is   the   bit   count   for   the   scanline   (biWidth   *   biBitCount),    
  //   and   this   macro   returns   the   number   of   DWORD-aligned   bytes   needed      
  //   to   hold   those   bits.    
  #define   WIDTHBYTES(bits)         (((bits)   +   31)   /   32   *   4)    
  #define   IS_WIN30_DIB(lpbi)     ((*(LPDWORD)(lpbi))   ==   sizeof(BITMAPINFOHEADER))    
  #define   RECTWIDTH(lpRect)       ((lpRect)->right   -   (lpRect)->left)    
  #define   RECTHEIGHT(lpRect)     ((lpRect)->bottom   -   (lpRect)->top)    
  #define   BOUND(x,   mn,   mx) ((x)   <   (mn)   ?   (mn)   :   ((x)   >   (mx)   ?   (mx)   :   (x)))  
  #define   WaitCursorBegin() HCURSOR   hcURSOR   =   SetCursor(LoadCursor(NULL,   IDC_WAIT))  
  #define   WaitCursorEnd() SetCursor(hcURSOR)    
     
  /*   function   prototypes   */    
  //   DIB   initialization  
  HDIB   CreateDIB(DWORD,   DWORD,   WORD);    
  HDIB   CreateDefaultDIB(DWORD   dwWidth,   DWORD   dwHeight);  
  void   DestroyDIB(HDIB);    
  HDIB   LoadDIB   (LPTSTR);    
  BOOL   SaveDIB   (HDIB,   LPTSTR);    
  HDIB   ReadDIBFile(HANDLE);    
  //   DIB   attributes  
  DWORD   BytesPerLine(LPBYTE   lpDIB);  
  DWORD   BytesPerLine(HDIB   hDIB);  
  DWORD   DIBlockSize(HDIB   hDIB);  
  DWORD   DIBlockSize(LPBYTE   lpDIB);  
  DWORD   DIBHeight   (LPBYTE   lpDIB);    
  DWORD   DIBHeight   (HDIB   hDIB);    
  DWORD   DIBWidth   (LPBYTE   lpDIB);    
  DWORD   DIBWidth   (HDIB   hDIB);    
  WORD   DIBNumColors   (LPBYTE   lpDIB);    
  WORD   DIBNumColors   (HDIB   hDIB);    
  WORD   DIBBitCount   (LPBYTE   lpDIB);    
  WORD   DIBBitCount   (HDIB   hDIB);    
  LPBYTE   FindDIBBits   (LPBYTE   lpDIB);    
  WORD   PaletteSize   (LPBYTE   lpDIB);    
  WORD   PaletteSize   (HDIB   hDIB);    
  //   DIB   display  
  BOOL   PaintBitmap(HDC,   LPRECT,   HBITMAP,   LPRECT,   HPALETTE,   DWORD);  
  BOOL   PaintDIB(HDC,   LPRECT,   HDIB,   LPRECT,   HPALETTE,   DWORD);  
  BOOL   DitherDisplayDIB(HDC,   LPRECT,   HDIB,   LPRECT,   DWORD);  
  //   DIB   operations  
  HBITMAP   DIBToDIBSection(LPBYTE   lpDIB);  
  HBITMAP   DIBToDIBSection(HDIB   hDIB);  
  HDIB   DIBSectionToDIB(HBITMAP   hBitmap);  
  HDIB   ConvertDIBFormat(LPBYTE   lpSrcDIB,   UINT   nWidth,   UINT   nHeight,   UINT   nbpp,   BOOL   bStretch,   HPALETTE   hPalSrc);  
  HDIB   ConvertDIBFormat(HDIB   hDIB,   UINT   nWidth,   UINT   nHeight,   UINT   nbpp,   BOOL   bStretch,   HPALETTE   hPalSrc);  
  HDIB   ConvertDIBFormat(LPBYTE   lpSrcDIB,   UINT   nbpp,   HPALETTE   hPalSrc);  
  HDIB   ConvertDIBFormat(HDIB   hDIB,   UINT   nbpp,   HPALETTE   hPalSrc);  
  HDIB   BitmapToDIB   (HBITMAP,   HPALETTE);    
  HDIB   BitmapToDIB   (HBITMAP,   HPALETTE,   WORD);  
  HDIB   ChangeBitmapFormat   (HBITMAP,   WORD,   DWORD,   HPALETTE);    
  HBITMAP   DIBToBitmap   (HDIB   hDIB,   HPALETTE   hPal);    
  HDIB   ChangeDIBFormat   (HDIB,   WORD,   DWORD);    
  //   DIB   palette  
  HPALETTE   CreateDIBPalette(LPBYTE   lpDIB);  
  HPALETTE   CreateDIBPalette(HDIB   hDIB);    
  BOOL   DisplayPalette(HDC   hDC,   LPRECT   lpRect,   HPALETTE   hPal);  
  HPALETTE   CopyPalette(HPALETTE   hPalSrc);  
  HPALETTE   GetSystemPalette(void);    
  int   PalEntriesOnDevice   (HDC   hDC);    
  HPALETTE   CreateIdentifyPalette(HPALETTE   hPalSrc);  
  BOOL   MapDIBColorsToPalette(HDIB   hDIB,   HPALETTE   hPalette);  
  HPALETTE   CreateDitherPalette();  
  HDIB   CreateDither8BppDIB(HDIB   hDIB);  
  //   DIB   capture  
  HBITMAP   CopyScreenToBitmap   (LPRECT);    
  HBITMAP   CopyWindowToBitmap   (HWND,   WORD);    
  HBITMAP   CopyClientRectToBitmap(HWND   hWnd,   LPRECT   lpRect);  
  HDIB   CopyScreenToDIB   (LPRECT);    
  HDIB   CopyWindowToDIB   (HWND,   WORD);    
  HDIB   CopyClientRectToDIB(HWND   hWnd,   LPRECT   lpRect);    
  //   effect   display  
  void   DrawTransparentBitmap(HDC,   HBITMAP,   LONG,   LONG,   COLORREF);  
  BOOL   Fade(int   nDeltaR,   int   nDeltaG,   int   nDeltaB,    
      BYTE   rm,   BYTE   gm,   BYTE   bm,  
      BYTE   *r,   BYTE   *g,   BYTE   *b);  
  //   Helper  
  HANDLE   CopyHandle(HANDLE   h);  
  void   Delay(DWORD   dwDelayTime);  
  //   DIB   transform  
  HBITMAP CropBitmap(HBITMAP,   LPRECT);  
  HDIB   CropDIB(HDIB,   LPRECT);  
  HDIB   CutDIB(HDIB,   LPRECT);  
  HDIB   MergeDIB(HDIB   hDib1,   HDIB   hDib2,   POINT   ptTopLeft);  
  HDIB   RotateDIB(HDIB   hDib);  
  HDIB   FlipHorzDIB(HDIB   hDib);  
  HDIB   FlipVertDIB(HDIB   hDib);  
  HDIB   ChangeDIBSize(HDIB   hDIB,   int   nWidth,   int   nHeight);  
  HDIB   ChangeDIBCanvasSize(HDIB   hDIB,   int   nWidth,   int   nHeight,   int   nPosition);  
  //   Color   quantization  
  HPALETTE   CreateOctreePalette(HDIB   hDIB,   UINT   nMaxColors,   UINT   nColorBits);  
  HPALETTE   CreateOctreePalette(LPBYTE   lpDIB,   UINT   nMaxColors,   UINT   nColorBits);  
  //   color   process  
  HDIB   SeparateRGBfromDIB(HDIB   hDib,   int   nIndex);  
  HDIB   FilteRGBfromDIB(HDIB   hDib,   int   nIndex);  
  HDIB   ColorQuantizeDIB(HDIB   hDIB,   UINT   nColorBits,   UINT   nMaxColors);  
  HPALETTE   ConvertToGrayscale(HDIB   hDib,   int   nMethod,    
          double   fRedWeight,   double   fGreenWeight,   double   fBlueWeight);  
  BOOL   AdjustDIBColor(HDIB   hDib,   int   nColorModel,   int   v1,   int   v2,   int   v3);  
  BOOL   AdjustDIBBrightness(HDIB   hDib,   int   v);  
  BOOL   AdjustDIBContrast(HDIB   hDib,   int   v);  
  void   RGBtoHSI(BYTE   r,   BYTE   g,   BYTE   b,   double   *h,   double   *s,   double   *i);  
  void   HSItoRGB(double   h,   double   s,   double   i,   BYTE   *r,   BYTE   *g,   BYTE   *b);  
  void   RGBtoHLS(BYTE   r,   BYTE   g,   BYTE   b,   double   *h,   double   *l,   double   *s);  
  void   HLStoRGB(double   h,   double   l,   double   s,   BYTE   *r,   BYTE   *g,   BYTE   *b);  
  void   CMYKtoRGB(BYTE   c,   BYTE   m,   BYTE   y,   BYTE   k,   BYTE   *r,   BYTE   *g,   BYTE   *b);  
  void   RGBtoCMYK(BYTE   r,   BYTE   g,   BYTE   b,   BYTE   *c,   BYTE   *m,   BYTE   *y,   BYTE   *k);  
  void   ChangeContrast(int   nDelta,   BYTE   *r,   BYTE   *g,   BYTE   *b);  
  void   ChangeBrightness(int   nDelta,   BYTE   *r,   BYTE   *g,   BYTE   *b);  
  //   image   process  
  BOOL   HighPassDIB(HDIB   hDib,   int   Strength,   int   nAlgorithm);  
  BOOL   LowPassDIB(HDIB   hDib,   int   Strength,   int   nAlgorithm);  
  BOOL   EdgeEnhanceDIB(HDIB   hDib,   int   Strength,   int   nDirection);  
  BOOL   MedianFilterDIB(HDIB   hDib);  
   
  //////////////////////////////////////////////////////////  
  #endif //__DIBAPI_H_Top

3 楼Skt32(荒城之月)回复于 2003-05-03 19:48:43 得分 0

回不下了Top

4 楼Skt32(荒城之月)回复于 2003-05-03 19:58:18 得分 0

其实他的也是从DIBLOOK中改的  
   
  http://www.lzu.edu.cn/netteach/jiaochen/vc++5.0/vc++5.0/chap11/chap11_4.htmTop

5 楼liweiliwei2ooo(我是新手)回复于 2003-05-03 20:00:47 得分 0

xiexie    
   
  有人已经发给我了  
   
  请   shaolunyuan   (袁绍伦)上来领分  
  Top

6 楼shaolunyuan(袁绍伦)回复于 2003-05-03 22:35:16 得分 100

呵呵,分,是越多越好!!Top

相关问题

  • 谁知道BMP图象压缩算法?
  • 求图象模糊算法
  • 图象处理算法
  • 如何将两幅BMP图象用算法将其相互透明地重叠在一起?
  • 如何使一个BMP的图象旋转任意角度,能告诉我一个具体算法吗?
  • 谁有图象柔化的算法?
  • 请问一下图象 blur算法。。。
  • 请教一个图象旋转算法
  • 图象复原算法讨论
  • 求教关于 图象 缩放算法

关键词

  • vc++
  • dibapi
  • dib
  • lprect
  • define
  • header

得分解答快速导航

  • 帖主:liweiliwei2ooo
  • shaolunyuan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo