资源简介
c语言读取bmp文件、vs2010工程
代码片段和文件信息
#include“imageProcess.h“
/*函数功能:位图文件头显示
输入参数:BITMAPFILEHEADER* pBmpHead 指向位图文件头结构的指针
(即内存地址,实现主调函数实参和被调函数形参的内存共享)
输出值:没有
*/
void showBmpHead(BITMAPFILEHEADER* pBmpHead)
{
printf(“位图文件头:\n“);
printf(“文件类型:%x\n“pBmpHead->bfType);
printf(“文件大小:%d\n“pBmpHead->bfSize);
printf(“保留字:%d\n“pBmpHead->bfReserved1);
printf(“保留字:%d\n“pBmpHead->bfReserved2);
printf(“实际位图数据的偏移字节数:%d\n“pBmpHead->bfOffBits);
}
/*函数功能:位图信息头显示
输入参数:BITMAPINFOHEADER* pBmpInforHead 指向位图文件信息头结构的指针
(即内存地址,实现主调函数实参和被调函数形参的内存共享)
输出值:没有
*/
void showBmpInforHead(BITMAPINFOHEADER* pBmpInforHead)
{
printf(“位图信息头:\n“);
printf(“结构体的长度:%d\n“pBmpInforHead->biSize);
printf(“位图宽:%d\n“pBmpInforHead->biWidth);
printf(“位图高:%d\n“pBmpInforHead->biHeight);
printf(“biPlanes平面数:%d\n“pBmpInforHead->biPlanes);
printf(“biBitCount采用颜色位数:%d\n“pBmpInforHead->biBitCount);
printf(“压缩方式:%d\n“pBmpInforHead->biCompression);
printf(“biSizeImage实际位图数据占用的字节数:%d\n“pBmpInforHead->biSizeImage);
printf(“X方向分辨率:%d\n“pBmpInforHead->biXPelsPerMeter);
printf(“Y方向分辨率:%d\n“pBmpInforHead->biYPelsPerMeter);
printf(“使用的颜色数:%d\n“pBmpInforHead->biClrUsed);
printf(“重要颜色数:%d\n“pBmpInforHead->biClrImportant);
}
/*函数功能:颜色表(索引模式)或位图数据区各像素RGB值(真彩模式)显示
输入参数:RGBQUAD* pRGB --- RGBAlpha 四元素结构体指针变量
DWORD num --- 要显示的RGBAlpha 四元素结构体个数,
即颜色表长度或要显示的像素个数
输出值: 没有
*/
void showRgbQuan(RGBQUAD* pRGB DWORD num)
{
for (DWORD i=0; i {
if (i%5==0)
{
printf(“\n“);
}
printf(“(%-3d%-3d%-3d) “(pRGB+i)->rgbRed(pRGB+i)->rgbGreen(pRGB+i)->rgbBlue);
}
printf(“\n“);
}
/*函数功能:图像反色
输入参数:RGBQUAD* dataOfBmp_src --- 原图像所有像素(以行为序)对应的
RGBAlpha 四元素结构体指针;
RGBQUAD* dataOfBmp_dst --- 反色后的图像所有像素(以行为序)对应的
RGBAlpha 四元素结构体指针;
DWORD width DWORD height --- 原图像和输出图像的宽度和高度
(以像素为单位)
输出值: 没有
*/
void reverseColor(RGBQUAD** dataOfBmp_src RGBQUAD** dataOfBmp_dst DWORD width DWORD height)
{
for(DWORD i=0;i for(DWORD j=0;j {
dataOfBmp_dst[i][j].rgbRed = 255-dataOfBmp_src[i][j].rgbRed;
dataOfBmp_dst[i][j].rgbGreen = 255-dataOfBmp_src[i][j].rgbGreen;
dataOfBmp_dst[i][j].rgbBlue = 255-dataOfBmp_src[i][j].rgbBlue;
}
}
/*函数功能:彩色图像转化为灰度图象
输入参数:RGBQUAD** dataOfBmp_src --- 原图像所有像素(以行为序)对应的
RGBAlpha 四元素结构体指针;
RGBQUAD** dataOfBmp_dst --- 转化为灰度图象后的图像所有像素(以行为序)对应的RGBAlpha 四元素结构体指针;
BYTE** dataOfBmp_gray --- 转化为灰度图象后的图像所有像素(以行为序)对应的灰度值;
DWORD width DWORD height --- 原图像和输出图像的宽度和高度
(以像素为单位)
输出值: 没有
*/
void RGB2Gray(RGBQUAD** dataOfBmp_src RGBQUAD** dataOfBmp_dst BYTE** dataOfBmp_gray DWORD width DWORD height)
{
double gray;
for(DWORD i=0;i {
for(DWORD j=0;j {
gray = 0.299*dataOfBmp_src[i][j].rgbRed+0.587*dataOfBmp_src[i][j].rgbGreen+0.114*dataOfBmp_src[i][j].rgbBlue;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 39424 2016-05-04 17:50 test1\Debug\test1.exe
文件 363728 2016-05-04 17:50 test1\Debug\test1.ilk
文件 461824 2016-05-04 17:50 test1\Debug\test1.pdb
文件 2228224 2016-05-04 17:55 test1\ipch\test1-92e0a540\test1-aadfba3d.ipch
文件 518 2016-05-04 17:50 test1\test1\Debug\cl.command.1.tlog
文件 2142 2016-05-04 17:50 test1\test1\Debug\CL.read.1.tlog
文件 180 2016-05-04 17:50 test1\test1\Debug\CL.write.1.tlog
文件 2 2016-05-04 17:50 test1\test1\Debug\li
文件 2 2016-05-04 17:50 test1\test1\Debug\li
文件 2 2016-05-04 17:50 test1\test1\Debug\li
文件 2 2016-05-04 17:50 test1\test1\Debug\li
文件 2 2016-05-04 17:50 test1\test1\Debug\li
文件 2 2016-05-04 17:50 test1\test1\Debug\li
文件 1202 2016-05-04 17:50 test1\test1\Debug\li
文件 2368 2016-05-04 17:50 test1\test1\Debug\li
文件 430 2016-05-04 17:50 test1\test1\Debug\li
文件 32781 2016-05-04 17:50 test1\test1\Debug\main.obj
文件 320 2016-05-04 17:50 test1\test1\Debug\mt.command.1.tlog
文件 206 2016-05-04 17:50 test1\test1\Debug\mt.read.1.tlog
文件 206 2016-05-04 17:50 test1\test1\Debug\mt.write.1.tlog
文件 404 2016-05-04 15:50 test1\test1\Debug\rc.command.1.tlog
文件 178 2016-05-04 15:50 test1\test1\Debug\rc.read.1.tlog
文件 186 2016-05-04 15:50 test1\test1\Debug\rc.write.1.tlog
文件 406 2016-05-04 15:50 test1\test1\Debug\test1.exe.em
文件 472 2016-05-04 15:50 test1\test1\Debug\test1.exe.em
文件 381 2016-05-04 17:50 test1\test1\Debug\test1.exe.intermediate.manifest
文件 42 2016-05-04 17:50 test1\test1\Debug\test1.lastbuildstate
文件 3507 2016-05-04 17:50 test1\test1\Debug\test1.log
文件 200 2016-05-04 15:50 test1\test1\Debug\test1_manifest.rc
文件 60416 2016-05-04 17:50 test1\test1\Debug\vc100.idb
............此处省略18个文件信息
评论
共有 条评论