C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[22316] 관련된 내용인데 완전한 답은 아니네요
정재훈 [] 1009 읽음    2002-10-29 11:04
:
: 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해 보시길..

+ -

관련 글 리스트
22303 [만해] 8Bit Binary Gray BMP 데이타 읽어 들이는 방법좀 알려 주세요 만해 1725 2002/10/28
22320     Re:[만해] 8Bit Binary Gray BMP 데이타 읽어 들이는 방법좀 알려 주세요 빈센트 1755 2002/10/29
22316     관련된 내용인데 완전한 답은 아니네요 정재훈 1009 2002/10/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.