Dec 27, 2002 1 #1 ieva Programmer Nov 8, 2002 3 LV Hi! 1) How to get separate pixels (RGB values) from bitmap image with C++? 2) How to generate a new bitmap of new calculated pixels? Thanks, Ieva
Hi! 1) How to get separate pixels (RGB values) from bitmap image with C++? 2) How to generate a new bitmap of new calculated pixels? Thanks, Ieva
Jan 19, 2003 #2 butthead Programmer Feb 24, 2002 545 US Could make a cool encryption program. I am waiting for the response myself. Upvote 0 Downvote
Jan 20, 2003 #3 hennep Programmer Dec 10, 2000 429 hi ieva, try this hennep //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiString as; Image1->Picture->Bitmap->LoadFromFile( (AnsiString)"c:\\test.bmp" ); // read a pixel for( int x=0; x<Image1->Picture->Bitmap->Width; x++ ) { for( int y=0; y<Image1->Picture->Bitmap->Height; y++ ) { as = "TColor = "; as += (long)Image1->Picture->Bitmap->Canvas->Pixels[x][y]; Application->MessageBoxA( as.c_str(), "debug", 0 ); } } //write a pixel for( int x=0; x<Image1->Picture->Bitmap->Width; x++ ) { for( int y=0; y<Image1->Picture->Bitmap->Height; y++ ) { Image1->Picture->Bitmap->Canvas->Pixels[x][y] = clRed; } } } //--------------------------------------------------------------------------- Upvote 0 Downvote
hi ieva, try this hennep //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiString as; Image1->Picture->Bitmap->LoadFromFile( (AnsiString)"c:\\test.bmp" ); // read a pixel for( int x=0; x<Image1->Picture->Bitmap->Width; x++ ) { for( int y=0; y<Image1->Picture->Bitmap->Height; y++ ) { as = "TColor = "; as += (long)Image1->Picture->Bitmap->Canvas->Pixels[x][y]; Application->MessageBoxA( as.c_str(), "debug", 0 ); } } //write a pixel for( int x=0; x<Image1->Picture->Bitmap->Width; x++ ) { for( int y=0; y<Image1->Picture->Bitmap->Height; y++ ) { Image1->Picture->Bitmap->Canvas->Pixels[x][y] = clRed; } } } //---------------------------------------------------------------------------
Jan 20, 2003 #4 hennep Programmer Dec 10, 2000 429 And to answer the secon part of you question: //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiString as; Image1->Picture->Bitmap->LoadFromFile( (AnsiString)"c:\\test.bmp" ); Image2->Picture->Bitmap->Width = Image1->Picture->Bitmap->Width; Image2->Picture->Bitmap->Height = Image1->Picture->Bitmap->Height; for( int x=0; x<Image1->Picture->Bitmap->Width; x++ ) { for( int y=0; y<Image1->Picture->Bitmap->Height; y++ ) { Image2->Picture->Bitmap->Canvas->Pixels[x][y] = Image1->Picture->Bitmap->Canvas->Pixels[x][y] - 100; } } Image2->Picture->Bitmap->SaveToFile( (AnsiString)"c:\\test2.bmp" ); } //--------------------------------------------------------------------------- Upvote 0 Downvote
And to answer the secon part of you question: //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiString as; Image1->Picture->Bitmap->LoadFromFile( (AnsiString)"c:\\test.bmp" ); Image2->Picture->Bitmap->Width = Image1->Picture->Bitmap->Width; Image2->Picture->Bitmap->Height = Image1->Picture->Bitmap->Height; for( int x=0; x<Image1->Picture->Bitmap->Width; x++ ) { for( int y=0; y<Image1->Picture->Bitmap->Height; y++ ) { Image2->Picture->Bitmap->Canvas->Pixels[x][y] = Image1->Picture->Bitmap->Canvas->Pixels[x][y] - 100; } } Image2->Picture->Bitmap->SaveToFile( (AnsiString)"c:\\test2.bmp" ); } //---------------------------------------------------------------------------