123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef __IMAGECOMPRESS_HEADER__
- #define __IMAGECOMPRESS_HEADER__
- #pragma once
- #include <gdiplus.h>
- using namespace Gdiplus;
- #pragma comment(lib, "gdiplus.lib")
- class ImageCompress
- {
- public:
- ImageCompress(void);
- ~ImageCompress(void);
- // 必须在CWinApp(CWinAppEx)派生类的InitInstance()函数中调用;
- inline static void InitGdiplusAtApp(){
- GdiplusStartupInput gdiplusStartupInput;
- GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
- }
- inline static void ShutdownGdiplus(){
- Gdiplus::GdiplusShutdown(m_gdiplusToken);
- }
- static BOOL ToCompressImage(IN const TCHAR *pImageSource, IN const TCHAR *pImageDest, IN const int &nXPiexel, IN const int &nYPiexel);
- private:
- static ULONG_PTR m_gdiplusToken;
- // format格式化方式;
- // pClsid返回的格式化类厂ID;
- static int GetEncoderClsid(IN const WCHAR* format, OUT CLSID* pClsid);
- void SaveImageToFile(IN Image *img, IN CString &path, IN ULONG quality = 100);
- // 以下两函数可以整合成一函数;
- static void ScaleZoombySpecificWidth(IN const int &nWidth, IN const int &nHeight, IN OUT CRect &rc);
- static void ScaleZoombySpecificHeight(IN const int &nWidth, IN const int &nHeight, IN OUT CRect &rc);
- };
- #endif
|