//通过以二进制方式读取文件 判断文件头得到图片类型 ,上面通过拓展名有缺陷。
CFile m_file(szFilePath, CFile::typeBinary|CFile::modeRead);
char file_head[9];
m_file.Read(file_head,sizeof(file_head));
file_head[8] = '/0';
CString strtemp;
strtemp.Format(L"%X",file_head[0]);
int fhead=_ttoi(strtemp.Right(2));
strtemp.Format(L"%X",file_head[1]);
CString szSecend=strtemp.Right(2);
szSecend.MakeLower();
switch (fhead)
{
case 47:
{
if (szSecend==L"49")
m_tagPicInfo.t_ImageTpye = ITYPE_GIF;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
case 0:
{
if (szSecend==L"d8")
m_tagPicInfo.t_ImageTpye = ITYPE_JPG;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
case 42:
{
if (szSecend==L"4d")
m_tagPicInfo.t_ImageTpye = ITYPE_BMP;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
case 89:
{
if (szSecend==L"50")
m_tagPicInfo.t_ImageTpye = ITYPE_PENG;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
default:
{
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
}
m_file.Close();
if (m_tagPicInfo.t_ImageTpye == ITYPE_ERR)
{
TE("OpenPicture CFileEx Error %s", (LPCTSTR)szFilePath);
MyMessageBoxEx(L"图片文件无效!");
PostMessage(WM_CLOSE,0,0);
return FALSE;
}
CFile m_file(szFilePath, CFile::typeBinary|CFile::modeRead);
char file_head[9];
m_file.Read(file_head,sizeof(file_head));
file_head[8] = '/0';
CString strtemp;
strtemp.Format(L"%X",file_head[0]);
int fhead=_ttoi(strtemp.Right(2));
strtemp.Format(L"%X",file_head[1]);
CString szSecend=strtemp.Right(2);
szSecend.MakeLower();
switch (fhead)
{
case 47:
{
if (szSecend==L"49")
m_tagPicInfo.t_ImageTpye = ITYPE_GIF;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
case 0:
{
if (szSecend==L"d8")
m_tagPicInfo.t_ImageTpye = ITYPE_JPG;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
case 42:
{
if (szSecend==L"4d")
m_tagPicInfo.t_ImageTpye = ITYPE_BMP;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
case 89:
{
if (szSecend==L"50")
m_tagPicInfo.t_ImageTpye = ITYPE_PENG;
else
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
default:
{
m_tagPicInfo.t_ImageTpye = ITYPE_ERR;
}
break;
}
m_file.Close();
if (m_tagPicInfo.t_ImageTpye == ITYPE_ERR)
{
TE("OpenPicture CFileEx Error %s", (LPCTSTR)szFilePath);
MyMessageBoxEx(L"图片文件无效!");
PostMessage(WM_CLOSE,0,0);
return FALSE;
}