<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    在linux下讀取bmp文件頭的完整代碼。

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    呵呵,貼在這里記錄一下。

    [cpp] view plaincopy
    1. #include<stdio.h>  
    2. #include<string.h>  
    3. #include<sys/types.h>  
    4.   
    5. #include <iostream>  
    6.   
    7. #pragma pack(2)  
    8.   
    9. using namespace std;  
    10.   
    11. //下面兩個結構是位圖的結構  
    12. typedef struct BITMAPFILEHEADER  
    13. {   
    14.     u_int16_t bfType;   
    15.     u_int32_t bfSize;   
    16.     u_int16_t bfReserved1;   
    17.     u_int16_t bfReserved2;   
    18.     u_int32_t bfOffBits;   
    19. }BITMAPFILEHEADER;   
    20.   
    21. typedef struct BITMAPINFOHEADER  
    22. {   
    23.     u_int32_t biSize;   
    24.     u_int32_t biWidth;   
    25.     u_int32_t biHeight;   
    26.     u_int16_t biPlanes;   
    27.     u_int16_t biBitCount;   
    28.     u_int32_t biCompression;   
    29.     u_int32_t biSizeImage;   
    30.     u_int32_t biXPelsPerMeter;   
    31.     u_int32_t biYPelsPerMeter;   
    32.     u_int32_t biClrUsed;   
    33.     u_int32_t biClrImportant;   
    34. }BITMAPINFODEADER;  
    35.   
    36. void showBmpHead(BITMAPFILEHEADER &pBmpHead){    
    37.     cout<<"位圖文件頭:"<<endl;    
    38.     cout<<"文件頭類型:"<<pBmpHead.bfType<<endl;    
    39.     cout<<"文件大小:"<<pBmpHead.bfSize<<endl;    
    40.     cout<<"保留字_1:"<<pBmpHead.bfReserved1<<endl;    
    41.     cout<<"保留字_2:"<<pBmpHead.bfReserved2<<endl;    
    42.     cout<<"實際位圖數據的偏移字節數:"<<pBmpHead.bfOffBits<<endl<<endl;    
    43. }    
    44.     
    45. void showBmpInforHead(BITMAPINFODEADER &pBmpInforHead){    
    46.     cout<<"位圖信息頭:"<<endl;    
    47.     cout<<"結構體的長度:"<<pBmpInforHead.biSize<<endl;    
    48.     cout<<"位圖寬:"<<pBmpInforHead.biWidth<<endl;    
    49.     cout<<"位圖高:"<<pBmpInforHead.biHeight<<endl;    
    50.     cout<<"biPlanes平面數:"<<pBmpInforHead.biPlanes<<endl;    
    51.     cout<<"biBitCount采用顏色位數:"<<pBmpInforHead.biBitCount<<endl;    
    52.     cout<<"壓縮方式:"<<pBmpInforHead.biCompression<<endl;    
    53.     cout<<"biSizeImage實際位圖數據占用的字節數:"<<pBmpInforHead.biSizeImage<<endl;    
    54.     cout<<"X方向分辨率:"<<pBmpInforHead.biXPelsPerMeter<<endl;    
    55.     cout<<"Y方向分辨率:"<<pBmpInforHead.biYPelsPerMeter<<endl;    
    56.     cout<<"使用的顏色數:"<<pBmpInforHead.biClrUsed<<endl;    
    57.     cout<<"重要顏色數:"<<pBmpInforHead.biClrImportant<<endl;    
    58. }   
    59.   
    60. int main( int argc, char **argv )  
    61. {  
    62.     FILE *fp = fopen(argv[1], "rb");  
    63.   
    64.     BITMAPFILEHEADER head;  
    65.     BITMAPINFODEADER info;  
    66.   
    67.     fread(&head, 1, sizeof(BITMAPFILEHEADER), fp);  
    68.     fread(&info, 1, sizeof(BITMAPINFODEADER), fp);  
    69.   
    70.     showBmpHead(head);  
    71.     showBmpInforHead(info);  
    72.   
    73.     cout<<sizeof(BITMAPFILEHEADER)<<endl; cout<<sizeof(BITMAPINFODEADER)<<endl;   
    74.   
    75.     fclose(fp);  
    76.   
    77.     return 0;  
    78. }  

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全