|
소스를 보시면
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 으로 변화하는 방법을 알고 싶습니다...
:
: 포멧이 틀리다고 해도 /* */ 이부분을 넣어도 이미지 출력에는 이상이 없어야하는 것이 아닌지요~
|