AdjustContrast.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. /********************************************************************
  2. AdjustContrast.cpp - ISee图像浏览器—图像处理模块图像亮度,对比
  3. 度调节实现代码文件
  4.     版权所有(C) VCHelp-coPathway-ISee workgroup 2000 all member's
  5.     这一程序是自由软件,你可以遵照自由软件基金会出版的GNU 通用许可证
  6. 条款来修改和重新发布这一程序。或者用许可证的第二版,或者(根据你
  7. 的选择)用任何更新的版本。
  8.     发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定
  9. 目地的隐含的担保。更详细的情况请参阅GNU通用许可证。
  10.     你应该已经和程序一起收到一份GNU通用许可证(GPL)的副本。如果还没有,
  11. 写信给:
  12.     The Free Software Foundation, Inc.,  675  Mass Ave,  Cambridge,
  13.     MA02139,  USA
  14. 如果你在使用本软件时有什么问题或建议,用以下地址可以与我们取得联
  15. 系:
  16. http://isee.126.com
  17. http://www.vchelp.net
  18. 或:
  19. iseesoft@china.com
  20. 作者:马翔
  21.    e-mail:hugesoft@yeah.net
  22.    功能实现:亮度,对比度调节
  23. 文件版本:
  24. Build 000123
  25. Date  2000-12-3
  26. ********************************************************************/
  27. #include "stdafx.h"
  28. #include "Contrast.h"
  29. #include "AdjustContrast.h"
  30. // 亮度,对比度调节处理函数
  31. BOOL _fnCOM_AdjustContrast(LPIMAGEPROCSTR lpInfo,int Brightness,int Contrast)
  32. {
  33. CopyMemory(lpInfo->_pdbdata ,lpInfo->_psbdata ,lpInfo->sImageInfo.width*lpInfo->sImageInfo.height*(lpInfo->sImageInfo.bitperpix/8));
  34. LPBYTE pRed=(LPBYTE)lpInfo->_pdbdata;
  35. LPBYTE pGrn=pRed+1, pBlu=pRed+2;
  36. WORD skip=lpInfo->sImageInfo.bitperpix/8;
  37. UINT i,j;
  38. for(i=0;i<(UINT)lpInfo->sImageInfo.width;i++)
  39. {
  40. for(j=0;j<(UINT)lpInfo->sImageInfo.height;j++)
  41. {
  42. _fnSPE_ChangeBrightness(Brightness,pRed,pGrn,pBlu);
  43. _fnSPE_ChangeContrast(Contrast,pRed,pGrn,pBlu);
  44.        pRed+=skip;
  45.        pGrn+=skip;
  46.        pBlu+=skip;
  47. }
  48. }
  49. return PROCERR_SUCCESS;
  50. }