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

图形图象

开发平台:

Visual C++

  1. // PsdModule.h : main header file for the PSDMODULE DLL
  2. //
  3. #if !defined(AFX_PSDMODULE_H__C03B0EB5_460A_11D4_8853_C6A14464AE19__INCLUDED_)
  4. #define AFX_PSDMODULE_H__C03B0EB5_460A_11D4_8853_C6A14464AE19__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #ifndef __AFXWIN_H__
  9. #error include 'stdafx.h' before including this file for PCH
  10. #endif
  11. #include "resource.h" // main symbols
  12. #include "..publicgol_isee.h" // 此文件定义了接口数据包
  13. /////////////////////////////////////////////////////////////////////////////
  14. /////               以下是 PSD 文件的结构
  15. /////////////////////////////////////////////////////////////////////////////
  16. #define PSD_SIGNATURE_MARKER 0x53504238 // ((WORD)('S'<<24)|(WORD)('P'<<16)|(WORD)('B'<<8)|'8')
  17. #define PSD_VERSION_MARKER 0x0100 // (WORD)(1<<8)
  18. #define ExchangeDWord(dword) ((dword&0xff)<<24)+((dword&0xff00)<<8)+((dword&0xff0000)>>8)+((dword&0xff000000)>>24)
  19. #define ExchangeWord(word) ((word&0xff)<<8)+((word&0xff00)>>8)
  20. #define RWPROGRESSSIZE 100
  21. // 目标图位深度格式
  22. enum DESFORMAT
  23. {
  24. DF_NULL, // 无效的目标格式
  25. DF_16_555, // 16位555格式(也就是15位图像)
  26. DF_16_565, // 16位565格式
  27. DF_24, // 24位格式
  28. DF_32, // 32位格式
  29. DF_MAX // 有效值边界
  30. };
  31. // 图像的存储方式
  32. enum IMAGEMODE
  33. {
  34. BITMAP_Image = 0, // Bitmap 是位图,每个像素只要一个位(黑白)
  35. GRAYSCALE_Image = 1, // 灰度图(有8位和16位)
  36. INDEXED_Image = 2, // 索引图,有色盘(只有8位)
  37. RGB_Image = 3, // 分R,G,B三色的图( RRR..GGG..BBB.. )
  38. CMYK_Image = 4, // 分C,M,Y,K四色的图( CCC..MMM..YYY..KKK.. )
  39. MULTICHANNEL_Image = 7, // 多通道
  40. DUOTONE_Image = 8, // 双色
  41. LAB_Image = 9 // Lab色
  42. };
  43. // PSD 文件信息头结构
  44. typedef struct
  45. {
  46. DWORD Signature; // Always equal to 8BPS
  47. WORD Version; // Always equal to 1
  48. WORD Reserved0; ////////////////////////
  49. WORD Reserved1; // Reserved 6 bytes
  50. WORD Reserved2; //
  51. WORD Channels; // (range: 1 to 24 )
  52. // The number of channels in the image.
  53. DWORD Rows; // Rows (range: 1 to 30000)
  54. DWORD Columns; // Columns (range: 1 to 30000)
  55. WORD Depth; // bits per channel (Values: 1, 8, 16)
  56. WORD Mode; // Color mode
  57. // Values are:
  58. // Bitmap=0, Grayscale=1, Indexed=2, RGB=3, CMYK=4, Multichannel=7, Duotone=8, Lab=9
  59. }PSDFILEHEADER, *LPPSDFILEHEADER;
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CPsdModuleApp
  62. // See PsdModule.cpp for the implementation of this class
  63. //
  64. class CPsdModuleApp : public CWinApp
  65. {
  66. public:
  67. CPsdModuleApp();
  68. // Overrides
  69. // ClassWizard generated virtual function overrides
  70. //{{AFX_VIRTUAL(CPsdModuleApp)
  71. //}}AFX_VIRTUAL
  72. //{{AFX_MSG(CPsdModuleApp)
  73. // NOTE - the ClassWizard will add and remove member functions here.
  74. //    DO NOT EDIT what you see in these blocks of generated code !
  75. //}}AFX_MSG
  76. DECLARE_MESSAGE_MAP()
  77. };
  78. // 定义模块版本
  79. #define MODULE_BUILDID 15
  80. // 接口函数声明 — 第一层,唯一与外界联系的接口
  81. int WINAPI AccessPSDModule(INFOSTR *pInfo);
  82. // 命令解释函数 — 第二层解释函数
  83. void _fnCMD_GETPROCTYPE(INFOSTR *pInfo);
  84. void _fnCMD_GETWRITERS(INFOSTR *pInfo);
  85. void _fnCMD_GETWRITERMESS(INFOSTR *pInfo);
  86. void _fnCMD_GETBUILDID(INFOSTR *pInfo);
  87. void _fnCMD_IS_VALID_FILE(INFOSTR *pInfo);
  88. void _fnCMD_GET_FILE_INFO(INFOSTR *pInfo);
  89. void _fnCMD_LOAD_FROM_FILE(INFOSTR *pInfo);
  90. void _fnCMD_SAVE_TO_FILE(INFOSTR *pInfo);
  91. void _fnCMD_IS_SUPPORT(INFOSTR *pInfo);
  92. void _fnCMD_RESIZE(INFOSTR *pInfo);
  93. // 内部执行函数 - 第三层执行函数.....
  94. int ReadFormPSDFile(CFile& file, LPINFOSTR pInfo);
  95. int IsSupportFormat( WORD ColorMode, WORD ColorPixel ) ;
  96. /////////////////////////////////////////////////////////////////////////////
  97. //{{AFX_INSERT_LOCATION}}
  98. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  99. #endif // !defined(AFX_PSDMODULE_H__C03B0EB5_460A_11D4_8853_C6A14464AE19__INCLUDED_)