|
먼저 답변 감사드리구요~
근데 이상한건 ptr을 뿌린게 아니라 gbitmap을 뿌렸다는 거죠~
gbitmap을 뿌렸는데 왜 맨 위가 블랙이고 밑으로 가면서 화이트로 바뀌는 이미지가 나오는지 모르겠습니다...
그리고 영상처리를 위한 1차 2차 배열을 어떻게 만들고 다시 gbitmap 포멧에 맞게 바꿀 수 있는지 모르겠습니다...
윤종원 님이 쓰신 글 :
: 소스를 보시면
: for (int y = 0; y < gbitmap->Height; y++)
: {
: .....
: ptr[x] = (unsigned char)y; <= 이 부분이 잘못됐습니다.
:
: y 값이 변화지만 최종적으로 (unsigned char)y 가질 수 있는 값은 0에서 255까지입니다.
: 주석처리된 부분을 풀고 실행하시면 이미지가 맨 위는 블랙이고 밑으로 가면서 화이트로 바뀌는 그런 이미지가 나올듯하네요.
:
: 영상처리 님이 쓰신 글 :
: : void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
: : {
: : OpenDialog1->Execute();
: : String fileName;
: : fileName = OpenDialog1->FileName;
: :
: : gbitmap->LoadFromFile(fileName.c_str());
: :
: : /***********************************************
: : unsigned char *ptr;
: : for (int y = 0; y < gbitmap->Height; y++)
: : {
: : ptr = (unsigned char *)gbitmap->ScanLine[y];
: : for (int x = 0; x < gbitmap->Width; x++)
: : ptr[x] = (unsigned char)y;
: : }
: : ****************************************************/
: :
: : PaintBox1->Canvas->Draw(0,0,gbitmap);
: : }
: :
: : /******
: : *****/ 이 부분을 빼면 그림이 잘 나오는데 이부분을 넣으면 안나오는 이유를 알고 싶습니다.
: : 그리고 gbitmap 을 1차나 2차 배열 혹은 포인터로 변화하고 다시 gbitmap 으로 변화하는 방법을 알고 싶습니다...
: :
: : 포멧이 틀리다고 해도 /* */ 이부분을 넣어도 이미지 출력에는 이상이 없어야하는 것이 아닌지요~
|