TgaModule.h
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:4k
- // TgaModule.h : main header file for the TGAMODULE DLL
- //
- #if !defined(AFX_TGAMODULE_H__C205ACC7_75B1_11D4_A32C_C7AEDE9F0627__INCLUDED_)
- #define AFX_TGAMODULE_H__C205ACC7_75B1_11D4_A32C_C7AEDE9F0627__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #ifndef __AFXWIN_H__
- #error include 'stdafx.h' before including this file for PCH
- #endif
- #include "resource.h" // main symbols
- #include "../public/gol_isee.h"
- /////////////////////////////////////////////////////////////////////////////
- // CTgaModuleApp
- // See TgaModule.cpp for the implementation of this class
- //
- class CTgaModuleApp : public CWinApp
- {
- public:
- CTgaModuleApp();
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CTgaModuleApp)
- //}}AFX_VIRTUAL
- //{{AFX_MSG(CTgaModuleApp)
- // NOTE - the ClassWizard will add and remove member functions here.
- // DO NOT EDIT what you see in these blocks of generated code !
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- };
- /////////////////////////////////////////////////////////////////////////////
- //**************TGA Header Declaration
- typedef struct {
- BYTE bID_Length;//附加信息长度
- BYTE bPalType;//调色板信息
- BYTE bImageType;//图象类型(0,1,2,3,9,10,11)
- WORD wPalFirstNdx;//调色板第一个索引值
- WORD wPalLength;//调色板索引数(以调色板单元为单位)
- BYTE bPalBits;//一个调色板单位位数(15,16,24,32)
- WORD wLeft;//图象左端坐标(基本无用)
- WORD wBottom;//图象底端坐标(基本无用)
- WORD wWidth;//图象宽度
- WORD wDepth;//图象长度
- BYTE bBits;//一个象素位数
- BYTE bDescriptor;//附加特性描述
- }TGAHEADER;
- //**************TGA 图象类型 *************
- typedef enum{
- TGA_NULL=0,
- TGA_UNCPSPAL=1,
- TGA_UNCPSCOLOR=2,
- TGA_UNCPSGRAY=3,
- TGA_RLEPAL=9,
- TGA_RLECOLOR=10,
- TGA_RLEGRAY=11
- }TGATYPE;
- //**********TGA 图象数据存储类型(与bDescriptor对应位与) ***********
- typedef enum{
- TGA_HORZMIRROR=0x10,
- TGA_VERTMIRROR=0x20
- }TGAMIRROR;
- // 目标图位深度格式
- enum DESFORMAT
- {
- DF_NULL, // 无效的目标格式
- DF_16_555, // 16位555格式(也就是15位图像)
- DF_16_565, // 16位565格式
- DF_24, // 24位格式
- DF_32, // 32位格式
- DF_MAX // 有效值边界
- };
- // 接口函数声明 — 第一层,唯一与外界联系的接口
- int WINAPI AccessBMPModule(INFOSTR *pInfo);
- // 命令解释函数 — 第二层解释函数
- void _fnCMD_GETPROCTYPE(INFOSTR *pInfo);
- void _fnCMD_GETWRITERS(INFOSTR *pInfo);
- void _fnCMD_GETWRITERMESS(INFOSTR *pInfo);
- void _fnCMD_GETBUILDID(INFOSTR *pInfo);
- void _fnCMD_IS_VALID_FILE(INFOSTR *pInfo);
- void _fnCMD_GET_FILE_INFO(INFOSTR *pInfo);
- void _fnCMD_LOAD_FROM_FILE(INFOSTR *pInfo);
- void _fnCMD_SAVE_TO_FILE(INFOSTR *pInfo);
- void _fnCMD_IS_SUPPORT(INFOSTR *pInfo);
- void _fnCMD_RESIZE(INFOSTR *pInfo);
- // 内部执行函数 - 第三层执行函数
- int _Read(CFile& file, LPINFOSTR pInfo);
- int _from_8_PAL_read(LPINFOSTR pInfo, PBYTE lpSrc, const TGAHEADER& tgaHeader, const LPBYTE pPal);
- int _from_15_16_COLOR_read(LPINFOSTR pInfo, PBYTE lpSrc, const TGAHEADER& tgaHeader);
- int _from_24_COLOR_read(LPINFOSTR pInfo, PBYTE lpSrc, const TGAHEADER& tgaHeader);
- int _from_32_COLOR_read(LPINFOSTR pInfo, PBYTE lpSrc, const TGAHEADER& tgaHeader);
- int _from_8_RLE_PAL_read(LPINFOSTR pInfo, PBYTE lpSrc, const TGAHEADER& tgaHeader, const LPBYTE pPal);
- int DecodingLine(BYTE *pDest,BYTE* pSrc,int rleunit,int destlen);//返回pSrc实际解压字节数
- //destlen为解压目标长度
- //rleunit为解压单位(in Bytes)
- int _from_15_16_RLE_COLOR_read(LPINFOSTR pInfo,PBYTE lpSrc,const TGAHEADER& tgaHeader);
- int _from_24_RLE_COLOR_read(LPINFOSTR pInfo,PBYTE lpSrc,const TGAHEADER& tgaHeader);
- int _from_32_RLE_COLOR_read(LPINFOSTR pInfo,PBYTE lpSrc,const TGAHEADER& tgaHeader);
- DESFORMAT _get_desformat(LPINFOSTR pInfo);
- WORD _cnv_rgb_to_555(BYTE red, BYTE green, BYTE blue);
- void _cnv_555_to_rgb(WORD col, PBYTE red, PBYTE green, PBYTE blue);
- WORD _cnv_rgb_to_565(BYTE red, BYTE green, BYTE blue);
- void _cnv_565_to_rgb(WORD col, PBYTE red, PBYTE green, PBYTE blue);
- DWORD _cnv_rgb_to_888(BYTE red, BYTE green, BYTE blue);
- WORD _cnv_555_to_565(WORD w555);
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_TGAMODULE_H__C205ACC7_75B1_11D4_A32C_C7AEDE9F0627__INCLUDED_)