DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Inverting 24-bit bitmap using fstream c++ (http://www.daniweb.com/forums/thread83865.html)

Mylena Jul 18th, 2007 2:06 pm
Inverting 24-bit bitmap using fstream c++
 
Hello!
I need to invert a 24-bit bmp image from right to left, and from top to bottom. I know how to invert colours, but not the position. I only know fstream to open and close files. This is what I did (below). Please let me know where I am wrong, or maybe other easiter things than fstream that i can use? Really appreciate any help!!!


void ReverseBMP::reverseBitmap()
{
string originalBMP;
string reversedBMP;
cout<<"Please specify the name of original file. Include extension .bmp "<<endl;
cin>>originalBMP;
cout<<"Please specify the name of reversed file. Include extension .bmp "<<endl;
cin>>reversedBMP;

ifstream original_file;
original_file.open(originalBMP.c_str(), ios::in|ios::binary);

ofstream reversed_file(reversedBMP.c_str(), ios::binary|ios::out);

char c;

//finding the size of the existing bitmap file
original_file.seekg(0,ios::end);
long size_of_original = original_file.tellg();

//putting cursor back to beginning in original file
original_file.seekg(0,ifstream::beg);

int count=0;
int cursor_position = 0;
reversed_file.seekp(0, ofstream::beg);

while(!original_file.eof())
{
original_file.read(&c, sizeof(char));

// Reading header of the original file - the first 54 characters starting at 0
if(count < 54)
{
reversed_file.put(c);
count++;
}


else
{
reversed_file.seekp(cursor_position, ios::end);
reversed_file.put(c);
reversed_file.put(c);
reversed_file.put(c);
cursor_position++;
count++;
}


}

original_file.close();
reversed_file.close();

}

iamthwee Jul 18th, 2007 2:13 pm
Re: Inverting 24-bit bitmap using fstream c++
 
Can't you use a bmp library.

Mylena Jul 18th, 2007 2:23 pm
Re: Inverting 24-bit bitmap using fstream c++
 
oh, thanks, i didn't know there's a bmp library... i'll do someresearch then!


All times are GMT -4. The time now is 7:57 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC