通过以二进制方式读取文件 判断文件头得到图片类型 ,上面通过拓展名有缺陷。
2012-03-19 17:28
441 查看
//通过以二进制方式读取文件 判断文件头得到图片类型 ,上面通过拓展名有缺陷。
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;
}
相关文章推荐
- 通过文件二进制信息判断图片类型(png,jpg,gif)
- 通过文件二进制信息判断图片类型(png,jpg,gif)
- Flash As3 通过二进制[ByteArray]判断真实的文件类型
- Python通过文件头来判断文件的真实类型
- 通过图片文件头判断图片类型
- Python通过文件头来判断文件的真实类型
- File Header文件头,通过检查文件头来判断文件类型
- java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)
- File Header文件头,通过检查文件头来判断文件类型
- java 通过流的方式读取远程图片并显示在jsp页面(类型以jpg、png等结尾的图片)
- 防范用户通过篡改 文件后缀名的方式欺骗服务器,使用二进制流的方式读取文件头文件,将头文件转换为16 进制
- java通过文件头内容判断文件类型
- IOS学习笔记 - NSFileManager,沙盒路径,NSString类路径处理,NSCache,读取文件头判断图片类型
- 通过文件头判断图片类型
- java通过判断文本的编码方式再读取文件
- AS3 判断读取到的图片文件是什么类型
- python通过文件头判断文件类型
- Python通过文件头来判断文件的真实类型
- java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)
- java通过文件头内容判断文件类型