超强的图像处理类CDib

时间:2012-06-23 05:06:33
【文件属性】:

文件名称:超强的图像处理类CDib

文件大小:20KB

文件格式:RAR

更新时间:2012-06-23 05:06:33

CDib,Dib,VC++

///////////////////////图像处理函数////////////////////////////////////// void ChangeBrightness(CDib* pOrigDib, int nChange);//nChange是亮度的改变量 //改变图像亮度 pOrigDib 为原先的图像 void ChangeContrast(CDib* pOrigDib, int nChange);//nChange是对比度的改变量 //改变图像对比度 pOrigDib 为原先的图像 void Render(CDib* pOrigDib, BYTE byRed, BYTE byGreen, BYTE byBlue); //着色 void Scale(CDib* pOrigDib, int nWidth, int nHeight); //缩放图像,pOrigDib 为原先的图像,nWidth为缩放后的宽度, nHeight为缩放后的高度 void Rotate(CDib* pOrigDib, int nXCenter, int nYCenter, float fTheta); //旋转图像,pOrigDib为原图,(nXCenter,nYCenter)为旋转中心的坐标,fTheta为旋转角度 void MirrorX(CDib* pOrigDib, int x, int y, int nWidth, int nHeight); //垂直方向的镜像变换,(x,y)为起始点,nWidth,nHeight为镜像变换的区域 void MirrorY(CDib* pOirgDib, int x, int y, int nWidth, int nHeight); //水平方向的镜像变换,(x,y)为起始点,nWidth,nHeight为镜像变换的区域 void ConvolutionFilter(CDib* pOrigDib, int* pnKernel, int nRows, int nCols); //卷积滤波器,pnKernel为 nRows * nCols 的卷积核 void PercentileFilter(CDib* pOrigDib, int nPercentage, int nRows, int nCols); //百分比滤波器, nPercentage确定百分比, 模板为 nRows * nCols void ReverseColor(); //图像反色,原先x, 变为255 - x void DibCopy(CDib* pOrigDib); //重载 = 操作 void ClipRect(CDib* pDib, int x, int y, int nWidth, int nHeight); //剪切操作 //////////////////////////////////////////////////////////////////////////////// /////////////////文件存取函数/////////////////////////////////////////////////// void SaveToBMPFile(const char* pstFileName); //存为位图文件,按其自身的位数存储 void SaveToJPGFile(const char* pszJpgFileName,int nQuality); //存为JPG文件 void LoadFromJPGFile(const char* psrFileName); //从JPG文件中读取 void LoadFromBMPFile(const char* pszDibFileName); //从BMP文件中读取 void SaveAs256Bitmap(const char *pszDibFileName); //存为256色位图 void SaveAsBWBitmap(const char *pszDibFileName); //存为单色位图 void SaveAs256GrayBitmap(const char *pszDibFileName); //存为256级灰度位图 void SaveAs24BitBMPFile(const char* pstFileName); //存为24位位图 //////////////////////////////////////////////////////////////////////////////// ////////////////图像格式转换函数//////////////////////////////////////////////// bool GetHistValue(int nModulus, int nCoef, int* pRed, int* pGreen, int* pBlue, int* pGray); //取得直方图的统计数值 bool ChangeTo256Gray(CDib* pOrigDib = NULL); //将图像转换成256色灰度图,pOrigDib为待转换的图像,缺省则转换自身 void SetTo256Gray(); bool ChangeToBW(CDib* pOrigDib = NULL, int byCritical = 128); //二值化,BW: black & white, byCritical为阈值,缺省为128 void SetToBW(); void QuantizeColor(LPBYTE lpbyDibBits24, int nScanWidth, int nScanHeight, LPBYTE lpbyDibBits8, CPalette* pPalette); //对颜色进行量化, 结果被保存在逻辑调色盘pPalette中, 同时将24位数据量化为8位数据, 并存放于lpbyDdbBits8之中 //该算法保留系统默认的20种静态颜色 void SetTo24Bitmap(); //格式转换,置颜色深度为24位真彩色 void SetTo256Color(); //格式转换, 置颜色深度为256色(8位) ////////////////////////////////////////////////////////////////////////////////// #ifdef _DEBUG virtual void Dump(CDumpContext& dc) const; virtual void AssertValid() const; #endif private: void Sort(int *p, int length); //methods void Init(); int IncreaseContrast(int nOrigColor,int nChange); //OrigColor为原值,函数返回改变后的值 int DecreaseContrast(int nOrigColor,int nChange); BYTE* GetDib24Bit(DWORD nOrigSize, int nWidth, int nHeight); //将图像格式转换为24位 HPALETTE CreateBitmapPalette(); //attributes BYTE m_byUpper; //像素颜色的上阀值 BYTE m_byLower; //像素颜色的下阀值 }; #endif/*/////////////////////////////////////////////////////////////////////// // End of file 'Dib.h' // /////////////////////////////////////////////////////////////////////////////*/


【文件预览】:
Dib.cpp
Dib.h

网友评论

  • 还没开始用
  • 功能很强大,好多用不上的功能都有了
  • 非常好,感谢分享,我已经使用到我的程序中 了
  • 非常好,感谢分享,我已经使用到我的程序中
  • 非常好 呵呵 现在也可以用Cimage
  • 还不错,值得学习,正能用到这个
  • 功能很多,很好
  • 还不错,是有用的东西。不过其实对我帮助不大,要是给我整个代码就好了,否则觉得不是很值得这个分值。
  • 很有用,推荐~
  • 不错的类库,蛮好用的
  • 功能简单了些
  • 功能很强大,好多用不上的功能都有了
  • 功能很多,很好
  • 挺好的,挺好用的
  • 确实好用,楼主辛苦了
  • 非常好用~谢谢分享!
  • 资源还不错,读写图片很好
  • 好,就是还得下载一个jil
  • 谢谢分享,很有用,推荐~
  • 很不错,要是 把jpeg的那个库也附上就好了
  • 功能不较强大,但是还缺IJL!
  • 功能确实很强
  • 功能比较全,嵌入图像程序中,编程方便的很
  • 功能真的很强大啊,比网上找的其他的CDib类好多了
  • 很不错,要是 把jpeg的那个库也附上就好了
  • 很好的CDIB类,比我在学校那时候下的一个功能强很多
  • 功能强大的CDIB类,谢谢楼主分享,很好用
  • 功能非常详细,但是本来想用来做Splash界面的,没用上。
  • 真心推荐,基本功能都有了,学习了
  • 真心推荐,位图的功能全,写的很具体,十分有用