資源簡介
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個文件信息
評論
共有 條評論