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

图形图象

开发平台:

Visual C++

  1. /********************************************************************
  2. gol_proc.h - 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. 编写人:临风    E-Mail: ringphone@sina.com
  21. 马翔 E-Mail: hugesoft@yeah.net
  22. YZ E-Mail: yzfree@sina.com
  23. 文件版本:
  24. Build 01212
  25. Date  2000-12-12
  26. ********************************************************************/
  27. #ifndef __GOL_PROC_INC
  28. #define __GOL_PROC_INC
  29. // 接口版本号
  30. #define ISEE_PRVER 8
  31. // 图像处理数据包附加参数尺寸
  32. #define PPK_ANNEXINFOSIZE 512
  33. //图像处理模块入口函数返回值
  34. #define PROCERR_SUCCESS 1        //成功
  35. #define PROCERR_FALSE 0        //失败,一般错误,须检查result值
  36. #define PROCERR_FAIL -1       //失败,一般是调用对话框失败,系统错误等,是大多数WIN API函数失败返回值。
  37. #define PROCERR_NULLPARAM -2       //传入参数为NULL指针
  38. // 图像处理数据包定义
  39. //************************************************************
  40. // 图像处理模块操作命令
  41. enum PROCCOMM
  42. {
  43. PCM_NULL,  // 未知或无效的命令
  44. PCM_GETWRITERS,  // 获取作者名单,多于一个人时用逗号分隔姓名
  45. PCM_GETWRITERMESS,  // 获取作者们的留言
  46. PCM_GETBUILDID,  // 获取图像模块内部版本号
  47. PCM_PROP,            // 图像属性处理
  48. PCM_RESIZE,          // 重定义尺寸
  49. PCM_ROTATE,  // 旋转
  50. PCM_SPLIT,           // 分割
  51. PCM_SPLICE,          // 拼接
  52. PCM_GREYSCALE,       // 灰度转换
  53. PCM_REFINECOLOR,     // 真彩,高彩,256色转换
  54. //PCM_XXXXX,         // 图像属性处理命令在此插入
  55. PCM_MASS = 2048,     // 图像质量处理
  56. PCM_FILTER,          // 杂色处理(滤波)
  57. PCM_CONTRAST,        // 明暗,对比度处理
  58. PCM_DETECTEDGE,      // 边缘探测
  59. PCM_REVERSE,  // 反色(色彩颠倒)
  60. PCM_BOGUS,  // 伪彩色处理
  61. //PCM_XXXXX,         // 图像质量处理命令在此插入
  62. PCM_STEFF = 3072,    // 图像静态效果处理
  63. PCM_EMBOSS,          // 浮雕效果
  64. PCM_VARIATIONS,      // 色调处理
  65. PCM_BLUR,            // 模糊
  66. PCM_BUTTON,          // 按钮化处理
  67. PCM_TWIRL,           // 扭曲
  68. PCM_INTERLACE,       // 抽丝
  69. PCM_MOSAIC,          // 马赛克
  70. //PCM_XXXXX,         // 图像静态效果处理命令在此插入
  71. PCM_ANIEFF = 4096,   // 图像动态效果处理
  72. PCM_FADEIN,          // 叠映
  73. PCM_ALPHASCROLL,     // ALPHA卷轴
  74. PCM_BURNUP,          // 火焰吞噬
  75. //PCM_XXXXX,         // 图像动态效果处理命令在此插入
  76. PCM_MAX  // 边界值
  77. };
  78. // 图像处理模块执行结果
  79. enum PROCRESULT
  80. {
  81. PR_SUCCESS, // 操作成功
  82. PR_FAIL, // 操作失败
  83. PR_NULL, // 未操作
  84. PR_MEMORYERR, // 内存不足,导致操作失败
  85. PR_ILLCOMM, // 非法指令(客户程序给出的命令码不正确)
  86. PR_COMMINFOERR, // 与命令有关的信息不足或有缺损
  87. PR_SYSERR, // 操作系统此时不稳定,无法执行命令
  88. //PR_XXXX, // 新的错误信息在此插入
  89. PR_NOTEXE, // 命令没有被执行,表示图像处理模块不支持该命令
  90. PR_MAX // 边界值
  91. };
  92. // 图像处理数据包状态
  93. enum IPDPCKSTATE
  94. {
  95. IPDPS_NULL, // 当前数据包为空
  96. IPDPS_CONFIG,       // 调用动态处理设置部分
  97. IPDPS_RUN,          // 调用动态处理运行部分
  98. //IPDPS_XXXXX, // 插入新的状态
  99. IPDPS_MAX // 边界值
  100. };
  101. // 数据结构定义
  102. //************************************************************
  103. // 图像操作数据包
  104. struct _tagIMAGEPROCSTR;
  105. typedef _tagIMAGEPROCSTR  IMAGEPROCSTR;
  106. typedef _tagIMAGEPROCSTR  *LPIMAGEPROCSTR;
  107. // 图像位数据相关信息
  108. struct _tagIMAGEPROCDATAINFO;
  109. typedef _tagIMAGEPROCDATAINFO  IMAGEPROCDATAINFO;
  110. typedef _tagIMAGEPROCDATAINFO  *LPIMAGEPROCDATAINFO;
  111. // 图像位数据相关信息
  112. struct _tagIMAGEPROCDATAINFO
  113. {
  114. int width; // 图像的宽度(以像素为单位)
  115. int height; // 图像的高度(以像素为单位)
  116. int bitperpix;      // 图像位数据中每个像素所占位数,最小16,因为无调色板传入
  117. int byteperline; // 图像位数据中每个扫描行所占的字节数
  118. BOOL bAlpha; // 图像位数据是否带ALPHA通道,如果为TRUE,则bitperpix必须=32,传入图象数据强制转换为COLORREF*类型,色值最高位为ALPHA值,即COLORREF col=0xaarrggbb
  119. };
  120. // 图像操作数据包
  121. struct _tagIMAGEPROCSTR
  122. {
  123. PROCCOMM comm; // 操作命令
  124. PROCRESULT result; // 执行的结果
  125. union {
  126. char cAnnData; // 联合,用于描述不同类型的数据,
  127. int iAnnData; // 是操作命令与执行结果的附加信息
  128. long lAnnData;
  129. float fAnnData;
  130. double dfAnnData;
  131. unsigned short  wAnnData;
  132. unsigned long  dwAnnData;
  133. void *pAnnData;
  134. unsigned int siAnnData[PPK_ANNEXINFOSIZE/sizeof(int)];
  135. unsigned char scAnnData[PPK_ANNEXINFOSIZE];
  136. } annexdata;
  137. HWND hParentWnd; // 父窗口句柄
  138. HINSTANCE hInst; // 图像处理模块实例句柄
  139. IMAGEPROCDATAINFO sImageInfo; // 源图像位数据信息
  140. unsigned long  *(*psLineAddr); // 源标准图像位数据中从0行到n-1行的每一行的首地址
  141. unsigned char *_psbdata; // 源标准图像位数据缓冲区首地址
  142. IMAGEPROCDATAINFO dImageInfo; // 目标图像位数据信息
  143. unsigned long  *(*pdLineAddr); // 目的标准图像位数据中从0行到n-1行的每一行的首地址
  144. unsigned char *_pdbdata; // 目的标准图像位数据缓冲区首地址
  145. // (注:目标图像内存块将由图像处理模块分配,并填写dImageInfo变量)
  146. IPDPCKSTATE state; // 数据包当前的状态
  147. int modify; // 修改标志
  148. };
  149. #endif //__GOL_PROC_INC