|
<정확하지 않으므로 참고만하세요...>
잘은 모르지만 이미지가 그레이인지 칼라인지는
canvas를 체크해서 알수 있을가요?
대부분 실제 그림화일의 헤더부분에 정의 되어 있습니다.
BITSPIXEL가 16 이면 hicolor 모드겠지요
흑백이미지도 변환 작업을 통해서 화면에 뿌려지는 거겠구요...
이상태에서 그레이를 가려낸다면
그래이로 변환된 그림은 r,g,b 가 같으므로
각각의 픽셀의 r=g=b 를 확인해 보면 어떨가요?
help에 32 bit라면 GetRvalue(Pixels[i][j]),GetGvalue(Pixels[i][j]),GetBvalue(Pixels[i][j])
를 쓰면 될것 같은데 16도 되나 모르겠네요...
안되면 16비트를 분리해야 되는데 오래되서 저두 가물가물...
1+5+5+5 이었던거 같기도 하구요.(5,6,5 인거같기두하고^^)
1(안쓰고) r(5비트) g(5) b(5)
생각나는데로 적어보면 (맞는지 책임못짐..참고만하세여)
b= rgb & 0x1f
g= (rgb>>5) & 0x1f
b= (rgb>>10) & 0x1f
가 다 같은지 아님 띄엄띄엄 체크해보시던가..끝.
김정규 님이 쓰신 글 :
: 안냐세염...
:
: 연달아 질문을 두개 올리는군여... -_-;;
:
: 무지함을 너그러이 여기시어... ^^;;;
:
: MDI에서 현재 활성화된 이미지가 칼라인지 그레이인지 알기 위해서
:
: GetDeviceCaps(Child->ImgView->Canvas->Handle, BITSPIXEL)을 사용했습니다...
:
: 헬프에 보니까 BITSPIXEL은 비트당 할당된 컬러비트를 리턴한다고 나오길래...
:
: 근데 그레이 영상도 그렇고 칼라 영상도 그렇고 값이 16이 나오는군요...
:
: 제가 잘못 알고 있는 건가요???
:
: 아님 GetDeviceCaps() 함수 말고 다른 방법이 있나요???
:
: 한수 가르침 부탁드립니다...
:
: 꾸벅~~
|