#ifndef __IMG_COMMON_20151214__ #define __IMG_COMMON_20151214__ #pragma once #include "IMGBasetype.h" #include using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib") class IMGCommon { public: IMGCommon(void); ~IMGCommon(void); static ULONG_PTR m_gdiplusToken; public: static INT IsCorrectExt( IN const TString &fext, OUT TString* lpMistakenExt = NULL ); static BOOL ExtMerge( IN CONST TString& ext1, IN CONST TString& ext2, OUT TString &merge ); // 过滤非复制扩展名的文件,同时去掉缩略图,保留指定复制扩展名的文件; static CString GetFileName(IN CONST CString& strfile); static void GetFilteringImg(IN CStringArray &AryImgs, IN LPCTSTR lpCopyExt, IN BOOL bPickoutThumbnail = TRUE); static void GetFilteringImg(IN STR_VEC &vtImgs, IN LPCTSTR lpCopyExt, IN BOOL bPickoutThumbnail = TRUE); static void SubgroupExt(IN STR_VEC &vtAllImgs, IN LPCTSTR lpSubgroupExt, OUT CStringArray &AryImgs); // 分组扩展名; static void SubgroupExt(IN STR_VEC &vtAllImgs, IN LPCTSTR lpSubgroupExt, OUT STR_VEC &vtImgs); // 分组扩展名; ////////////////////////////////////////////////////////////////////////// static BOOL LoadImgFromFile(IN Image** pImg, LPCTSTR lpPath); static BOOL LoadImgFromBuffer(IN Image** pImg, IN BYTE* pBuffer, IN CONST INT& nBufLen); static BOOL LoadImgFromBuffer(IN Image** pImg, LPCTSTR lpPath); static Image* LoadImgFromResource( IN HMODULE hModule, IN LPCTSTR lpName, IN LPCTSTR lpType); /* Bitmap继承于Image; static BOOL LoadImgFromFile(IN Bitmap** pImg, LPCTSTR lpPath); static BOOL LoadImgFromBuffer(IN Bitmap** pImg, IN BYTE* pBuffer, IN CONST INT& nBufLen); */ ////////////////////////////////////////////////////////////////////////// static BOOL GetOrientation(IN Image *pImg); static int GetEncoderClsid(IN CONST WCHAR* format, OUT CLSID* pClsid); static BOOL SaveImg2newfile(IN Image* pImg, IN CString strNewfile, IN ULONG uQuality); static BOOL SaveImg2newfile(IN Image* pImg, IN TString strNewfile, IN ULONG uQuality); static int ZoomImg(IN CRect &Imgrc, IN CONST DWORD &dwDisplayPix, OUT DWORD &dwZoomPix); static int ZoomImg(IN CONST DWORD &dwImgPix, IN CONST DWORD &dwDisplayPix, OUT DWORD &dwZoomPix); static BOOL ImgThumbnail(IN Image* pImg, IN CONST DWORD &dwDisplayPix, IN CString strNewfile, IN ULONG uQuality); static BOOL ImgThumbnail(IN LPCTSTR lpImgpath, IN CONST DWORD &dwDisplayPix, IN CString strNewfile, IN ULONG uQuality); static BOOL ImgThumbnail(IN CONST TString &strImgpath, IN CONST DWORD &dwDisplayPix, IN TString strNewfile, IN ULONG uQuality); static BOOL SimpleImgThumbnail(IN LPCTSTR lpImgpath, IN CONST DWORD &dwDisplayPix, IN CString strNewfile, IN ULONG uQuality); ////////////////////////////////////////////////////////////////////////// static void CopyWithExt(IN CONST TString& strfile, IN TString& strChange, IN STR_VEC& vtExts, IN BOOL bFailIfExists); static BOOL CopyFileEx( IN TString& strExistFile, IN OUT TString& strNewFile, IN CONST DWORD& dwZoomPix, IN CONST INT& nCopyType); static TString CopyImage( IN TString &strSourceImg, IN LPCTSTR lpDestDirectory, IN CONST DWORD& dwZoomPix, IN CONST INT& nCopyType, IN CString strPerImgGoods, IN BOOL bGoodsWithName, IN LPCTSTR lpSeparator, IN BOOL bKeepbackWard, IN CONST INT &nLayers ); static BOOL CopyImageEx( IN TString &strSourceImg, IN LPCTSTR lpDestDirectory, IN CONST DWORD& dwZoomPix, IN CONST INT& nCopyType, IN STR_VEC& vtWithExt, IN CString strPerImgGoods, IN BOOL bGoodsWithName, IN LPCTSTR lpCustomInfo, IN LPCTSTR lpSeparator, IN BOOL bKeepbackWard, IN CONST INT &nLayers ); static BOOL CropImgToFile( IN CONST TString& strImgpath, IN TString& strCropFile, IN CRect& rcCrop); static BOOL ExportCropImageToFile(IN CONST TString& strSourceImg, IN LPCTSTR lpSaveDirectory, IN CONST INT& nExportType, IN CString strCropInfo, IN LPCTSTR lpSeparator, IN BOOL bKeepbackWard, IN CONST INT &nLayers ); static BOOL AnalysisCropInfo(IN TString &strName, IN CONST TString& strSourceImg, IN LPCTSTR lpSaveDirectory, IN CString strCropInfo); // 给指定的图片加图片水印(位置、大小暂不支持); static Image* AppendImgWatermark(IN Image* pImg, IN Image* pWatemarkImg); static Image* AppendImgWatermark(IN Image* pImg, IN LPCTSTR lpWatemarkImgpath); static Image* AppendImgWatermark(IN LPCTSTR lpImgpath, IN Image* pWatemarkImg); static Image* AppendImgWatermark(IN LPCTSTR lpImgpath, IN LPCTSTR lpWatemarkImgpath); static BOOL AppendImgWatermark(IN Image* pImg, IN Image* pWatemarkImg, IN LPCTSTR lpSaveImgpath); static BOOL AppendImgWatermark(IN Image* pImg, IN LPCTSTR lpWatemarkImgpath, IN LPCTSTR lpSaveImgpath); static BOOL AppendImgWatermark(IN LPCTSTR lpImgpath, IN LPCTSTR lpWatemarkImgpath, IN LPCTSTR lpSaveImgpath); // 给指定图片加文字水印(位置、字体、颜色暂不支持); static Image* AppendWordWatermark(IN Image* pImg, IN LPCTSTR lpWatemarkString); static Image* AppendWordWatermark(IN LPCTSTR lpImgpath, IN LPCTSTR lpWatemarkString); static BOOL SaveBitmap(IN CDC *pDC, IN CBitmap* pBitmap, IN CONST INT& nBitdepth, IN const INT& nWidth, IN const INT& nHeight, IN LPCTSTR lpSavepath); static BOOL SaveBitmapEx(IN CDC *pDC, IN CBitmap* pBitmap, IN CONST INT& nBitdepth, IN const INT& nWidth, IN const INT& nHeight, IN LPCTSTR lpSavepath); static void DrawString(IN CDC* pdc, IN CONST INT& nFontSize, IN LPCTSTR lpFontName, IN LPCTSTR lpString, IN OUT CRect &rcString); ////////////////////////////////////////////////////////////////////////// // 获取文件的图标; static HICON GetFileIcon(IN const CString& strFilePath, IN BOOL bLarge); }; #endif