毕业到现在工作也有四个月了,一直都是零零碎碎地学着,自己写出来的代码越来越多,还是挺有成就感的,虽然成长的慢,但是我一点一滴地感觉到自己确实在进步,还是有所希冀的,今天来记录一下写了四天的转换格式的代码,期间走了挺多弯路的,主要看网上代码看迷糊了,就很容易出错。
首先是RGB转BMP格式
/*******************************************************************************
* 函数名 : BGR888_TO_BMP
* 描 述 : 将BGR888格式的图片转换成bmp格式
* 输 入 : dstLength --输出BMP数据的缓存空间长度
* bgrbuf --读取的BGR888数据
* width --BGR图像的宽
* height --BGR图像的高
* 输 出 : Filepath --保存BMP图像路径
* 返回值 : 成功返回 0
* 失败返回 -1
*******************************************************************************/
int MainWindow::BGR888_TO_BMP(int dstLength, QString FilePath,char *FileName, char *bgrbuf,int width,int height)
{
FilePath = QFileDialog::getOpenFileName(this,"打开rgb图片"," ","RGB(*.rgb)");
QFile filename(FilePath);
filename.open(QIODevice::ReadOnly);
if(!filename.isOpen())
{
QMessageBox::information(this,"提示","文件打开失败");
return -1;
}
int dataLen = filename.size();
bgrbuf = new char[dataLen];
filename.read(bgrbuf,dataLen);
filename.close();
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
int i = 0, row_align