main.cpp
上传用户:panstart
上传日期:2022-04-12
资源大小:199k
文件大小:2k
源码类别:

IP电话/视频会议

开发平台:

C++ Builder

  1. #include<stdio.h>
  2. #include "tmndec.h"
  3. #include "conio.h"
  4. #define IMAGE_SIZE  76032
  5. #define FILE_SIZE   76086
  6. #define IMAGE_WIDTH  176
  7. #define IMAGE_HEIGHT 144
  8. unsigned char rgbdata[80000];
  9. struct bmpfileheader
  10. {
  11. int fsize;
  12. int reserved;
  13. int offset;
  14. }bfh;
  15. struct bmpinfoheader
  16. {
  17. int bisize;
  18. int biwidth;
  19. int biheight;
  20. short biplanes;
  21. short bibitcount;
  22. int bicompression;
  23. int bisizeimage;
  24. int bixpixelspermeter;
  25. int biypixelspermeter;
  26. int biclrused;
  27. int biclrimp;
  28. }bih;
  29. void main()
  30. {
  31. unsigned char data[5000] ;
  32. int i;
  33. int n,size=2130;
  34. FILE *f,*bmp;
  35. char tstr[]="BM";
  36.    InitH263Decoder();
  37.   
  38.    
  39.    //Read from the file
  40.    f=fopen("h263","rb");
  41.   
  42.    if(f==NULL)
  43.    {
  44.    printf("error in opening file");
  45.    return;
  46.    }
  47.     n=fread(data,sizeof(char),size,f);
  48. if(n<size)
  49. {
  50. printf("total data read...%d n terminating...",n);
  51. return;
  52. }
  53.   
  54.    
  55.  
  56.   
  57. for(i=0;i<5;i++)
  58. {
  59. printf("ndecompressing frame...%d",i);
  60.   
  61. int ret=DecompressFrame(data,size,rgbdata,80000);
  62. if(ret)
  63. printf("n success");
  64. else
  65. {
  66. printf("n failure");
  67. continue;
  68. }
  69.   
  70.     
  71. //Create bitmap file.....
  72. bmp=fopen("my.bmp","wb");
  73.   if(bmp==NULL)
  74.   {
  75.  printf("unable to create bmp file");
  76. return;
  77.   }
  78.   // Write 2 standard bytes .."BM"
  79.   fwrite(tstr,1,2,bmp);
  80.   // create and write file header
  81.   bfh.fsize=FILE_SIZE;
  82.   bfh.reserved=0;
  83.   bfh.offset=40+14;
  84.       fwrite(&bfh,1,sizeof(bfh),bmp);
  85.   //create and write bmp header
  86.   bih.bibitcount=24;
  87.   bih.biclrimp=0;
  88.   bih.biclrused=0;
  89.   bih.bicompression=0;
  90.   bih.biheight=IMAGE_HEIGHT;
  91.   bih.biplanes=1;  //if does not work change it to 0
  92.   bih.bisize=40;
  93.   bih.bisizeimage=0;
  94.   bih.biwidth=IMAGE_WIDTH;
  95.   bih.bixpixelspermeter=0;
  96.   bih.biypixelspermeter=0;
  97.   fwrite(&bih,1,sizeof(bih),bmp);
  98.   // now write image data.....
  99.   fwrite(rgbdata,1,IMAGE_SIZE,bmp);
  100.   // close the file safely...
  101.   fclose(bmp);
  102. }
  103.   
  104.  // Finaly close the decoder safely....
  105.   ExitH263Decoder();
  106.   
  107.   fclose(f);
  108.   
  109. }