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

델파이 Q&A
Delphi Programming Q&A
[5456] [답변] FECI49NU/ Color image를 흑백 으로 전환...
박지훈.임프 [cbuilder] 1488 읽음    1999-01-05 10:35
안녕하세요. 천리안 프로그래머포럼 C++Builder 담당자 임펠리테리입니다.

아래에 무념님이 친절하게 잘 설명해주셨군요.

무념님이 설명하신 내용은 그레이스케일링이죠. 질문하신 내용중 '갈색톤으로..'에

해당하는 것입니다.

컬러 이미지를 '흑백'(그레이스케일이 아닌)으로 바꾸려면, 디더링이라는 과정을

거쳐서 일정 영역마다 흰색과 검은색의 픽셀 조합으로 바꿔주어야 합니다.

하지만.. 썩 좋은 것은 아니지만, 그럭저럭 볼만한 디더링을 해주는 루틴은 vcl 내에

있습니다. TBitmap::Monochrome 속성을 true로 세팅하면 제깍~ 디더링이 됩니다.

흑백으로 바뀌는 거죠.

폼위에 있는 이미지를 대상으로 한다면...

Image1.Picture.Bitmap.Monochrome := true; 이렇게 해주면 되죠.

TBitmap을 대상으로 한것이긴 하지만, jpeg나 emf등등, TGraphic을 상속받는 모든

그래픽 객체에서 사용할 수 있는 방법입니다. TGraphic 객체는 그것이 원래 무엇이었

든 관계없이, 메모리에 로드되면 TBitmap과 메모리를 공유하니까요. 아참, 아이콘은

아마 안될겁니다.

그럼 도움되시길...




독립문에서 임펠리테리였습니다.

(cbuilder, cbuilder@thrunet.com)



p.s. 깜빡했는데.. 일반적인 그레이스케일링은, r g b 값에 따라 가중치(?)가
     있습니다. 똑같이 더해서 /3 하는 것이 아니구요.
     원래 이미지에 가장 가까운 그레이스케일 이미지를 얻으려면, 제 기억으로는
     b 값에 가장 큰 가중치를, r값이 그 다음, g가 가장 낮은 비율로 곱해졌던거
     같은데.. 정확한 값은 기억이 안나네요.




+ -

관련 글 리스트
5456 [답변] FECI49NU/ Color image를 흑백 으로 전환... 박지훈.임프 1488 1999/01/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.