|
답변 감사합니다.
그렇게했는데도 안되네요.. ㅡㅡ;
비트맵 이미지 그리기 할때 하얀색으로 나오는 이유를 알고 싶은데요...
비트맵 헤더 정보가 잘못됐다든지...
메모리 데이터값이 잘못 들어가 있다던지...
속성을 잘못지정한거 아닌가... 라든지...
방태윤 님이 쓰신 글 :
: 다른건 잘 모르겠고요...
:
: StretchDIBits(Image2->Canvas->Brush->Handle, 0, 0, 1, 256, 0, 0, 1, 256, pBarBits, &bi, DIB_RGB_COLORS, SRCCOPY);
:
: 에서 일단 Image2->Canvas->Brush->Handle 는 Image2->Canvas->Handle 로 하셔야 합니다.
:
: 툴툴툴 님이 쓰신 글 :
: : 안녕하세요~ 좋은 주말이네요~ ㅡㅡ;
: :
: : StretchDIBis를 이용해서 화면에 간단한 RGB색상을 표시하려고 합니다.
: :
: : VC++에서는 잘 되는데 뭐가 문제인지 전혀 모르겠네요.. .
: :
: : BYTE *pBits = new BYTE[256*3];
: :
: : for()
: : {
: : pBits에 값을 채우고
: : }
: :
: : BITMAPINFO bi;
: : bi.bmiHeader.biSize = 256;
: : bi.bmiHeader.biWidth = 1;
: : bi.bmiHeader.biHeight = 256;
: : bi.bmiHeader.biPlanes = 1;
: : bi.bmiHeader.biBitCount = 24;
: : bi.bmiHeader.biCompression = BI_RGB;
: : bi.bmiHeader.biSizeImage = 256*3;
: : bi.bmiHeader.biXPelsPerMeter = 0;
: : bi.bmiHeader.biYPelsPerMeter = 0;
: : bi.bmiHeader.biClrUsed = 0;
: : bi.bmiHeader.biClrImportant = NULL;
: :
: : 해서 비트맵헤더에 정보를 채우고...
: :
: : StretchDIBits(Image2->Canvas->Brush->Handle, 0, 0, 1, 256, 0, 0, 1, 256, pBarBits, &bi, DIB_RGB_COLORS, SRCCOPY);
: :
: : 요렇게 그리는데요...
: :
: : 어떤 방법을 써도 안되네요.
: :
: :
: : /*
: : TMemoryStream *pMyStream = new TMemoryStream();
: :
: : pMyStream->WriteBuffer(pBits , 3*256);
: : pBitmap->LoadFromStream(pMyStream);
: :
: : // Image2->Canvas->Brush->Bitmap = pBitmap;
: : Image2->Canvas->Draw(0, 0, pBitmap);
: : */
: : 이 방법도 써보고...
: :
: : 화면에 하얗게 나올뿐이네요...
: :
: : 어디가 잘못된건지 Borland C++ 고수님들의 조언 좀 얻고 싶습니다.
|