已经成功解决问题,我写了个判断格式的函数,如有相同问题的可以看一下
QString PicModel::returnRealFormat(QString path,QString suffix){//suffix代表路劲
QFile file(path);
file.open(QIODevice::ReadOnly);
QByteArray ba;
ba=file.readAll();
file.close();
char c;
QString s;
for(int i=0;i<2;i++)
{
c=ba.at(i);
s.append(c);
}
qDebug()<<s[0]<<s[1];
qDebug()<<s;
if(s=="GI")
{
qDebug()<<"格式:GIF";
return "gif";
}
if(s=="\uffff\uffd8")
{
qDebug()<<"格式:JPG";
return "jpg";
}
if(s=="\uff89P")
{
QFileInfo finfo(path);
if(suffix!="png")/
{
qDebug()<<"格式修改成功";
file.rename(finfo.baseName()+"png");//调用rename函数修改文件后缀
}
qDebug()<<"格式:PNG";
return "png";
}
if(s=="BM")
{
qDebug()<<"格式:BMP";
return "bmp";
}
if(s=="MM")
{
qDebug()<<"格式:TIFF";
return "tiff";
}
if(s=="P6")
{
qDebug()<<"格式:PPM";
return "ppm";
}
if(s=="P5")
{
qDebug()<<"格式:PGM";
return "pgm";
}
if(s=="p4"){
qDebug()<<"格式:PBM";
return "pbm";
}
return "other";
}