00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023
00024 class CImageServices;
00025
00026
00027 class CImageFile : public CComObject
00028 {
00029
00030 public:
00031 CImageFile(CImageServices* pService);
00032 virtual ~CImageFile();
00033
00034 DECLARE_DYNAMIC(CImageFile)
00035
00036
00037 protected:
00038 CImageServices* m_pService;
00039 public:
00040 BOOL m_bScanned;
00041 int m_nWidth;
00042 int m_nHeight;
00043 int m_nComponents;
00044 public:
00045 BOOL m_bLoaded;
00046 LPBYTE m_pImage;
00047
00048
00049 public:
00050 void Clear();
00051 public:
00052 BOOL LoadFromMemory(LPCTSTR pszType, LPCVOID pData, DWORD nLength, BOOL bScanOnly = FALSE, BOOL bPartialOk = FALSE);
00053 BOOL LoadFromFile(LPCTSTR pszType, HANDLE hFile, DWORD nLength, BOOL bScanOnly = FALSE, BOOL bPartialOk = FALSE);
00054 BOOL LoadFromFile(LPCTSTR pszFile, BOOL bScanOnly = FALSE, BOOL bPartialOk = FALSE);
00055 BOOL LoadFromResource(HINSTANCE hInstance, UINT nResourceID, LPCTSTR pszType, BOOL bScanOnly = FALSE, BOOL bPartialOk = FALSE);
00056 public:
00057 BOOL SaveToMemory(LPCTSTR pszType, int nQuality, LPBYTE* ppBuffer, DWORD* pnLength);
00058 BOOL SaveToFile(LPCTSTR pszType, int nQuality, HANDLE hFile, DWORD* pnLength = NULL);
00059 BOOL SaveToFile(LPCTSTR pszFile, int nQuality);
00060 public:
00061 DWORD GetSerialSize() const;
00062 void Serialize(CArchive& ar);
00063 public:
00064 HBITMAP CreateBitmap(HDC hUseDC = 0);
00065 BOOL Resample(int nNewWidth, int nNewHeight);
00066 BOOL FastResample(int nNewWidth, int nNewHeight);
00067 BOOL EnsureRGB(COLORREF crBack = 0xFFFFFFFF);
00068 BOOL MonoToRGB();
00069 BOOL AlphaToRGB(COLORREF crBack);
00070 BOOL SwapRGB();
00071 };