- #include "FormYZ.h"
- #include "stdafx.h"
- #include "PsdModule.h"
- /*************************************************************************
- *
- * IsFileExist()
- *
- * 参数说明:
- *
- * char *lpFileName - 待判断的文件路径和名称(文件名)
- *
- * 返回值:
- *
- * BOOL - 如果指定的文件存在返回TRUE,否则返回FALSE。
- *
- * 描述:
- *
- * 判断指定的文件是否存在
- *
- * 该文件必需可以被读和写
- *
- ************************************************************************/
- BOOL IsFileExist(char *lpFileName)
- {
- CFile file;
- BOOL bExist = FALSE; // 文件存在是TRUE,不存在是FALSE
- CFileException e;
- // 确定指定的文件是否存在
- if (file.Open(lpFileName, CFile::modeReadWrite|CFile::shareDenyNone, &e))
- {
- bExist = TRUE;
- file.Close();
- }
- else
- {
- // 可能有其他程序正在处理此文件
- switch(e.m_cause)
- {
- case CFileException::tooManyOpenFiles:
- case CFileException::accessDenied:
- case CFileException::sharingViolation:
- case CFileException::lockViolation:
- return TRUE;
- case CFileException::fileNotFound:
- case CFileException::badPath:
- case CFileException::invalidFile:
- case CFileException::hardIO:
- default:
- return FALSE;
- }
- }
- return bExist;
- }
- // 判断标准图像的位格式
- DESFORMAT _get_desformat(LPINFOSTR pInfo)
- {
- ASSERT(pInfo);
- // ASSERT(pInfo->state >= PKST_PASSVER);
- ASSERT(pInfo->sDIBInfo.bmi.biPlanes == 1);
- DESFORMAT result;
- switch(pInfo->sDIBInfo.bmi.biBitCount)
- {
- case 32:
- /******************************************************
- 32位掩码示意图
- 高 -> 低
- 0000 0000 0000 0000 0000 0000 0000 0000 888格式
- 1111 1111 ------------------------R
- 1111 1111 -------------G
- 1111 1111--B
- * Win95 系统只支持这一种格式
- ******************************************************/
- if (pInfo->sDIBInfo.bmi.biCompression == BI_RGB)
- {
- result = DF_32;
- break;
- }
- if ((pInfo->sDIBInfo.rmask == 0xff0000)&&
- (pInfo->sDIBInfo.gmask == 0xff00)&&
- (pInfo->sDIBInfo.bmask == 0xff))
- result = DF_32;
- else
- {
- ASSERT(FALSE); // 只支持888格式
- result = DF_NULL;
- }
- break;
- case 24:
- result = DF_24;
- break;
- case 16:
- /*******************************************
- 16位掩码示意图
- 高字节 低字节
- 0000 0000 0000 0000
- 1 1111--B // 555格式
- 11 111 -------G
- 111 11 --------------R
- 0
- 1 1111--B // 565格式
- 111 111 -------G
- 1111 1 --------------R
- * Win95 系统只支持以上两种格式
- *******************************************/
- if (pInfo->sDIBInfo.bmi.biCompression == BI_RGB)
- {
- result = DF_16_555;
- break;
- }
- if ((pInfo->sDIBInfo.rmask == 0x7c00)&&
- (pInfo->sDIBInfo.gmask == 0x3e0)&&
- (pInfo->sDIBInfo.bmask == 0x1f))
- result = DF_16_555;
- else if ((pInfo->sDIBInfo.rmask == 0xf800)&&
- (pInfo->sDIBInfo.gmask == 0x7e0)&&
- (pInfo->sDIBInfo.bmask == 0x1f))
- result = DF_16_565;
- else
- result = DF_NULL;
- break;
- default:
- ASSERT(FALSE); // 不接受其它格式
- result = DF_NULL;
- break;
- }
- return result;
- }