原始数据是16位的,想保存为16位的bmp文件
我不知道该怎样写象素数据,参考资料上采用555
或者565编码,不过我有些不是很清楚,谁能给指点一下。
原始数据是raw格式的。
我不知道该怎样写象素数据,参考资料上采用555
或者565编码,不过我有些不是很清楚,谁能给指点一下。
原始数据是raw格式的。
解决方案 »
- multibytetowidechar 在不是中文的操作系统中有乱码
- 根据主窗体的句柄如何获取特定子窗体的句柄呢?
- 估计是windows的底层文件被破坏了,高手进来看看?
- [调查]您从事软开发工作多少年了?
- Cstring 如何清空重来呢?
- 怎样在vc中使用*.lib,高手指点一下
- 关于Access的导入导出
- ★★★★★国外有哪些类似于CSDN的论坛或者新闻组?欢迎大家进来讨论拿分!(请斑竹保留本贴)★★★★★
- 如何运行.net的msdn?
- 誰做過一個支持多語言的軟件開發項目,過來簽名了
- 请推荐一本用VisualC++6.0和ADO开发数据库的好书,好网站。谢谢。
- 如何得到combo box下拉框某一列的值???
BITMAPINFO RGB16BitsBITMAPINFO;
ZeroMemory(&RGB16BitsBITMAPINFO, sizeof(BITMAPINFO));
RGB16BitsBITMAPINFO.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
RGB16BitsBITMAPINFO.bmiHeader.biWidth = width;
RGB16BitsBITMAPINFO.bmiHeader.biHeight = height;
RGB16BitsBITMAPINFO.bmiHeader.biPlanes = 1;
RGB16BitsBITMAPINFO.bmiHeader.biBitCount = 16;
在填充数据 BITMAPFILEHEADER bmBITMAPFILEHEADER;
ZeroMemory(&bmBITMAPFILEHEADER, sizeof(BITMAPFILEHEADER));
bmBITMAPFILEHEADER.bfType = 0x4d42; //bmp
bmBITMAPFILEHEADER.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
bmBITMAPFILEHEADER.bfSize = bmBITMAPFILEHEADER.bfOffBits + ((width*height)*2); ///2=(16 / 8)
//write into file
FILE *mStream = NULL;
if((mStream = fopen(m_sfilename, "wb")))
{
//write bitmap file header
fwrite(&bmBITMAPFILEHEADER, sizeof(BITMAPFILEHEADER), 1, mStream);
//write bitmap info
fwrite(&(RGB16BitsBITMAPINFO.bmiHeader), sizeof(BITMAPINFOHEADER), 1, mStream);
//write bitmap pixels data
fwrite(lpBitmapBits, 2*width*height, 1, mStream);
//close file
fclose(mStream);
}
bmphead.bfSize = vff_rawsize+sizeof(Bmphead);//FileSize
bmphead.bfReserved1 = 0;
bmphead.bfReserved2 = 0;
bmphead.bfOffBits = sizeof(BmpHead);
bmphead.biSize = 0x28;
bmphead.biWidth = vff_pixelsize[0];//width
bmphead.biHeight = vff_pixelsize[1]; //height
bmphead.biPlanes = 1;
bmphead.biBitCount = 16;
bmphead.biCompression = 0;
bmphead.biSizeImage = vff_rawsize;//ImageSize
bmphead.biXPelsPerMeter = 0;
bmphead.biYPelsPerMeter = 0;
bmphead.biClrUsed = 0;
bmphead.biClrImportant = 0;FILE* fp=fopen("E:\\练习\\sf0100802_RCC_150_ROI.bmp", "wb");if (fp == NULL)
{
cout<<"Failed to open file for write.";
return 0;}fwrite((void*)&bmphead,sizeof(bmphead),1,fp);
fwrite(Image_Data, 2*vff_pixelsize[0]*vff_pixelsize[1], 1, fp);//vff_pixelsize[0]和vff_piexelsize[1]分别为宽和高
fclose(fp);这样好像不行啊!!
显示没有预览,我是新手,这个我自己弄了两天,没进展。
所以来这里求助。