|
:
: 0 <= TImage->Canvas->Pixels[x][y] <= 255 이렇게 읽을수 있는지?
:
: 별난 만해~
:
: SImage->Picture->Bitmap->Monochrome = true;
: SImage->Picture->Bitmap->PixelFormat = pf8bit;
: SImage->Picture->LoadFromFile(OpenPictureDialog->FileName);
:
wingdi.h에 보면 나오는 API 매크로 함수 중에 아래와 같이
Get... 함수가 있습니다.
#define GetRValue(rgb) ((BYTE)(rgb))
#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
#define GetBValue(rgb) ((BYTE)((rgb)>>16))
위에서 하신것처럼 TImage->Canvas->Pixels[x][y] 은 TColor 타입입니다.
TColor는 RGB() API함수와 호환(?)되는 타입이지요
위에서 비교하신것처럼.. 0과 255사이값은 각각의 R, G, B값에 대해 비교할수 있고,
말씀하신것처럼.. 8비트 그레이로 변화하는 공식은.. 책이 어디있는지 찾을수가 없군요.
자료를 찾아보시면 나와있고.. 주된 형태는
R계수*R + G계수*G + B계수*B => 이런식이라고 알고 있습니다.(기억이...음)
결국 TColor(즉, Pixels)에서 R, G, B를 구해내야 8비트 그레이로 변환할 수 있지요.
대충이정도 밖에 말씀드릴 수 없군여..음.. 공부가 필요해..
그럼.. 한번 Try해 보시길..
|