#pragma once #include"bmpinfo.h" // TGAファイルのヘッダー構造体 #pragma pack(push,1) struct TGAFILEHEADER { BYTE identification_len; BYTE color_map_type; BYTE image_type; WORD color_map_origin; WORD color_map_len; BYTE color_map_size; WORD origin_x; WORD origin_y; WORD width; WORD height; BYTE pixel_size; BYTE descriptor; }; #pragma pack(pop) // 画像入出力クラス enum DIB_BIT{ BIT24=24, BIT32=32 }; // BIT24 : 24ビットDIBSection作成 // BIT32 : 32ビットDIBSection作成 #define MAX_ERR_TEXT 256 class BmpIO : virtual public BmpInfo { TCHAR m_pErrText[MAX_ERR_TEXT]; bool CreateOpenDialog(HWND hWnd); void GetFileExt(TCHAR *pExt); void LoadBmpData(const BYTE *pData,DIB_BIT bitCount); void LoadBmp(const BYTE *pData,DIB_BIT bitCount); void LoadTga(const BYTE *pData,DIB_BIT bitCount); bool CreateSaveDialog(HWND hWnd,TCHAR *pFullPath); void WriteDIB32toBMP24(HANDLE fh); void WriteDIB24toBMP32(HANDLE fh); void DeleteBmp(void); void SetLastErr(const TCHAR *text); public: BmpIO(void); BmpIO(const BmpIO &source); ~BmpIO(void); void CopyObject(const BmpIO *pSource); BmpIO& operator =(const BmpIO &source); void LoadImage(HWND hWnd,DIB_BIT bitCount,const TCHAR *pFullPath=NULL); void SaveBmp(HWND hWnd,bool overWrite,DIB_BIT bitCount,const TCHAR *pFullPath=NULL); void ClipCopy(HWND hWnd); void ClipPaste(HWND hWnd,DIB_BIT bitCount); void CreateEmpty(DWORD width,DWORD height,DIB_BIT bitCount); const TCHAR* GetLastErr(void); };