Recent Posts
Java 5 | 1 sec ago
None | 5 sec ago
C# | 31 sec ago
Oberon 2 | 40 sec ago
None | 44 sec ago
None | 44 sec ago
NullSoft Installer | 52 sec ago
None | 58 sec ago
JavaScript | 59 sec ago
Java | 1 min ago
Sitereport
Find cool info about any domain on the internet?
visit sitereport
Free Subdomains
Want a pastebin.com sub-domain for your community?
learn more...
What is pastebin?
Pastebin is a website that hosts all your text & code on dedicated servers for easy sharing.
learn more...
Learn a little bit about the new Pastebin.com on our help page. hide message
By Profas on the 31st of Oct 2009 02:20:30 PM Download | Raw | Embed | Report
  1. #include <fstream>
  2. #include <string>
  3. #include <iostream>
  4. #include "windows.h"
  5.  
  6. using namespace std;
  7.  
  8. void istraukimas(int,int,char[]);
  9. void convertavimas();
  10. void apvertimas(int);
  11. void koordinates(int);
  12.  
  13. int eil=0;
  14.  
  15. int main()
  16. {
  17.     int ilgis;
  18.     int aukstis;
  19.     char failas[10];
  20.     cout<<"---------------------------------------------------------------\n";    
  21.     cout<<"BMP TO TXT Converter.\n";
  22.     cout<<"---------------------------------------------------------------\n";
  23.     cout<<"Enter file name with extension.\n";
  24.     cout<<"File: ";
  25.     cin>>failas;
  26.     cout <<"Enter file height and width.\n";
  27.     cout<<"Width: ";
  28.     cin>>ilgis;
  29.     cout<<"Height: ";
  30.     cin>>aukstis;
  31.     cout<<"---------------------------------------------------------------\n";
  32.     cout<<"Converting...\n";
  33.     istraukimas(ilgis,aukstis,failas);
  34.     cout<<"Reverting...\n";
  35.     convertavimas();
  36.     cout<<"Copying...\n";
  37.     apvertimas(aukstis);
  38.     cout<<"Coordinates...\n";
  39.     koordinates(aukstis);
  40.     cout<<"---------------------------------------------------------------\n";
  41.     cout<<"BMP file pixel color codes: BMPcode.txt.\n";
  42.     cout<<"BMP to TXT (BGR): result.txt.\n";
  43.     cout<<"BMP to TXT (RGB)(Finished): finished_result.txt.\n";
  44.     cout<<"Coordinates: coordinates.txt.\n";
  45.     cout<<"Good Bye. \n";
  46.     cout<<"---------------------------------------------------------------\n";    
  47.     system("PAUSE>nul");
  48.    
  49.     return 0;
  50. }
  51.    
  52. void istraukimas(int x, int y, char failo_pav[])
  53. {
  54.     FILE* failas;
  55.     int nr;
  56.     unsigned char data[x][y][3];
  57.     string info;
  58.     memset(data,0,x*y*3);
  59.            
  60.     BITMAPFILEHEADER bFile;
  61.     BITMAPINFOHEADER bInfo;
  62.            
  63.     failas = fopen(failo_pav,"r+");
  64.            
  65.     fseek(failas,0,SEEK_SET);    
  66.     nr = fread(&bFile,sizeof(BITMAPFILEHEADER),1,failas);
  67.     nr = fread(&bInfo,sizeof(BITMAPINFOHEADER),1,failas);
  68.            
  69.     fseek(failas,54,SEEK_SET);
  70.     fread(data,x*y*3,1,failas);
  71.            
  72.     ofstream fail("BMPcode.txt");
  73.     for(int i=0;i<x;i++)
  74.     {    
  75.         for(int k=0;k<y;k++)
  76.         {
  77.             cout<<"Converting: "<<i<<" "<<k<<endl;
  78.             fail << hex
  79.             << (unsigned short)data[i][k][2]
  80.             << (unsigned short)data[i][k][1]
  81.             << (unsigned short)data[i][k][0]<<endl;
  82.         }
  83.                
  84.         fail<<"-"<<endl;
  85.     }
  86.    
  87.     fail.close();                            
  88.     fclose(failas);
  89. }
  90.  
  91. void convertavimas()
  92. {
  93.     string eilute;
  94.    
  95.     ifstream failas("BMPcode.txt");
  96.     ofstream failas2("result.txt");
  97.    
  98.     while (! failas.eof())
  99.     {
  100.           getline (failas,eilute);
  101.          
  102.           eil++;
  103.           cout<<"Reverting rows: "<<eil<<endl;
  104.          
  105.           if (eilute=="c0c0c0")
  106.           failas2<<"1";
  107.           else
  108.           if (eilute=="ffffff")
  109.           failas2<<"2";
  110.           else
  111.           if (eilute=="ff8040")
  112.           failas2<<"3";
  113.           else
  114.           if (eilute=="-")
  115.           failas2<<endl;
  116.           else
  117.           failas2<<"?";
  118.     }
  119.     failas.close();
  120.     failas2.close();
  121. }
  122.  
  123. void apvertimas(int aukstis)
  124. {
  125.     int eilutes=aukstis;
  126.     string eilute[eilutes];
  127.     int lin=0;
  128.    
  129.     ifstream failas("result.txt");
  130.     while (! failas.eof())
  131.     {
  132.           if(lin==aukstis) break;
  133.           cout<<"Reverting rows: "<<lin<<endl;
  134.           getline (failas,eilute[lin++]);
  135.     }
  136.     failas.close();
  137.    
  138.     ofstream failas2("finished_result.txt");
  139.     for (int i=eilutes-1;i>=0;i--)
  140.     {
  141.         cout<<"Copying rows: "<<i<<endl;
  142.         failas2<<eilute[i]<<endl;
  143.     }
  144.     failas2.close();  
  145.    
  146. }
  147.  
  148. void koordinates(int aukstis)
  149. {
  150.     string buf;
  151.     int pirma_eilute=0;
  152.     int x=aukstis;
  153.     int y=x;
  154.     bool rado=false;
  155.     int ilgis=0;
  156.     int x1,x2,y1,y2;
  157.    
  158.     ifstream failas("finished_result.txt");
  159.     while(! failas.eof())
  160.     {
  161.         cout<<"Searching: "<<pirma_eilute<<endl;;
  162.         getline(failas,buf);
  163.         pirma_eilute++;
  164.        
  165.         for(int i=0;i<x;i++)
  166.             if(buf[i]=='2')
  167.                 rado=true;
  168.                
  169.         for(int i=0;i<x;i++)
  170.             if(buf[i]=='2')
  171.                 rado=true;
  172.                
  173.         if(rado==true)
  174.             break;
  175.     }
  176.     failas.close();
  177.    
  178.     ifstream failas2("finished_result.txt");
  179.     while(! failas.eof())
  180.     {
  181.         for(int i=1;i<=pirma_eilute;i++)
  182.             getline(failas2,buf);
  183.        
  184.         getline(failas2,buf);
  185.        
  186.         for(int i=0;i<x;i++)
  187.         {
  188.             cout<<"Calculating: "<<i<<endl;;
  189.             if(buf[i]=='3')
  190.             {
  191.                 while(buf[i++]=='3')
  192.                     ilgis++;
  193.                 break;
  194.             }
  195.         }
  196.         break;
  197.     }
  198.     failas2.close();
  199.    
  200.     string eilutes[ilgis+4];
  201.     int viso_eiluciu = x/(ilgis+4);
  202.     int skip=pirma_eilute-2;
  203.     int kiek=0;
  204.     int laukai=0;
  205.     int ratas=0;
  206.     int pradinis_skip;
  207.     int kel=1;
  208.     int ejimai[4]={0,0,0,0};
  209.    
  210.     ofstream out("coordinates.txt");
  211.     for(int i=0;i<=viso_eiluciu;i++)
  212.     {
  213.        
  214.         ifstream failas3("finished_result.txt");    
  215.        
  216.         for(int j=1;j<=skip;j++)
  217.             getline(failas3,buf);
  218.        
  219.         while(!failas.eof())
  220.         {
  221.             cout<<"Generating buf: "<<skip<<endl;
  222.             getline(failas3,eilutes[kiek]);
  223.             skip++;
  224.             if(kiek++==ilgis+3)
  225.                 break;
  226.         }
  227.         kiek=0;
  228.        
  229.         if(i==0)
  230.             pradinis_skip=skip;
  231.        
  232.         for(int k=0;k<x;k++)
  233.         {
  234.             cout<<"Making rows: "<<k<<endl;
  235.             if(eilutes[2][k]=='3')
  236.             {
  237.                 while(eilutes[2][k++]=='3')
  238.                     continue;
  239.                 laukai++;
  240.             }
  241.         }
  242.        
  243.         int non=0;
  244.         int nr=0;
  245.        
  246.         for(int r=0;r<laukai;r++)
  247.         {
  248.             cout<<"Making Fields: "<<r<<endl;
  249.             for(int a=0;a<4;a++)
  250.                 ejimai[a]=0;
  251.                
  252.             while(eilutes[2][nr++]!='3')
  253.                 non++;
  254.                
  255.             x1=nr;
  256.             x2=x1+ilgis-1;
  257.             y1=pradinis_skip-ilgis-1+ratas;
  258.             y2=pradinis_skip-2+ratas;
  259.             nr+=ilgis;
  260.             non+=ilgis;
  261.            
  262.             if((eilutes[1][x1-1]=='2') && (eilutes[0][x1-1]=='2'))
  263.                 ejimai[0]=1;
  264.             if((eilutes[3][x2]=='2') && (eilutes[3][x2+1]=='2'))
  265.                 ejimai[1]=1;
  266.             if((eilutes[ilgis+2][x1-1]=='2') && (eilutes[ilgis+3][x1-1]=='2'))
  267.                 ejimai[2]=1;
  268.             if((eilutes[2][x1-2]=='2') && (eilutes[2][x1-3]=='2'))
  269.                 ejimai[3]=1;
  270.            
  271.             out<<x1<<","<<x2<<","<<y1<<","<<y2<<","
  272.                <<ejimai[0]<<","<<ejimai[1]<<","
  273.                <<ejimai[2]<<","<<ejimai[3]<<endl;
  274.         }
  275.         laukai=0;
  276.         ratas+=ilgis+2;
  277.         skip-=2;
  278.         failas3.close();
  279.     }
  280.     out.close();
  281.    
  282.     cout<<"Generated.\n";    
  283. }
Submit a correction or amendment below. Make A New Post
To highlight particular lines, prefix each line with @h@
Syntax highlighting:
Post expiration:
Post exposure:
Name / Title:
Email: