|
포인터를 할당하고 쓰는 것은 기본중의 기본입니다.
unsigned char *ptr;
이것을 할당하는 곳이 없군요.
프로그램 실행하면 죽지 않나요?
그리고, 영상처리 하실 것이면, Pixel 의 데이타 크기에 대해서 먼저 확인해 보셔야 할 듯합니다.
Pixel 하나가 항상 1byte (unsigined char) 는 아니거든요.
그럼!
영상처리 님이 쓰신 글 :
: 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 으로 변화하는 방법을 알고 싶습니다...
:
: 포멧이 틀리다고 해도 /* */ 이부분을 넣어도 이미지 출력에는 이상이 없어야하는 것이 아닌지요~
|