static bool IsBitmap(const QString& pstrFileName)
{
long nImageHeader = 2;
QByteArray btData;
QFile file(pstrFileName);
if(file.open(QIODevice::ReadOnly)){
btData = file.read(nImageHeader);
file.close();
}
if(btData.size() >= nImageHeader){
if((unsigned char)btData[0] == 0x42 && (unsigned char)btData[1] == 0x4d){
return true;
}
}
return false;
}
static bool IsJpeg(const QString& pstrFileName)
{
long nImageHeader = 2;
long nImageTail = 2;
QByteArray btData;
QFile file(pstrFileName);
if(file.open(QIODevice::ReadOnly)){
btData = file.readAll();
file.close();
}
long nSize = btData.size();
if(nSize >= nImageHeader + nImageTail){
if((unsigned char)btData[0] == 0xff && (unsigned char)btData[1] == 0xd8 && (unsigned char)btData[nSize - 2] == 0xff && (unsigned char)btData[nSize - 1] == 0xd9){
return true;
}
}
return false;
}
static bool IsPng(const QString& pstrFileName)
{
long nImageHeader = 8;
QByteArray btData;
QFile file(pstrFileName);
if(file.open(QIODevice::ReadOnly)){
btData = file.read(nImageHeader);
file.close();
}
if(btData.size() >= nImageHeader){
if((unsigned char)btData[0] == 0x89 && (unsigned char)btData[1] ==0x50 && (unsigned char)btData[2] ==0x4E && (unsigned char)btData[3] ==0x47 &&
(unsigned char)btData[4] ==0x0D && (unsigned char)btData[5] ==0x0A && (unsigned char)btData[6] ==0x1A && (unsigned char)btData[7] ==0x0A){
return true;
}
}
return false;
}