| | |
Inverting 24-bit bitmap using fstream c++
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Jul 2007
Posts: 30
Reputation:
Solved Threads: 1
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();
}
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();
}
![]() |
Similar Threads
- How to draw a line in a VB.NET form? (VB.NET)
- fstream Tutorial (C++)
- RLE with a grayscale bitmap (Java)
Other Threads in the C++ Forum
- Previous Thread: Bank Account Class
- Next Thread: Permutation
| Thread Tools | Search this Thread |
api array based beginner binary bitmap c++ c/c++ calculator char char* class code coding compile compiler console conversion count database delete deploy developer directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp homeworkhelper iamthwee ifstream input int java lib linkedlist linker list loop looping loops map math matrix memory multiple news node number numbertoword output parameter pointer problem program programming project proxy python random read recursion recursive reference rpg sorting string strings temperature template test text text-file tree unix url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets






