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
[5455] [기타] 아래 답변에서 빠진거...
무념 [ ] 862 읽음    1999-01-05 00:02
안녕하셔요 ?
또 무념입니다.

아래 그레이스케일 하는데서 빠진게 있군요.


화면이 좀 붉게 할 경우에는 아래와 같이 코드를 고쳐주면 됩니다.

      Pixels[i,j]:=RGB(TempColor,TempColor*2 div 3,TempColor*2 div 3);

R 값을 그대로 두고 G 와 B 를 좀 줄여주면 좀 더 붉고 어두워지는 효과가

나오죠.
(어... 자꾸 엔터가 들어가네...)

글구, 그 비율을 적당히 조절하면 원하시는 갈색톤을 얻을 수 있겠군요...

아니면 특정한 갈색톤을 하나 정하셔서

그에 해당하는 R,G,B 값을 각각 갖고 있다가...
그레이로 만드는 대신 그 색깔과 평균을 낸다든지 하는

그런 방법을 쓸 수도 있겠군요...
그때에는 이런 코드가 되겠네요...


      Pixels[i,j]:=RGB(TempColor+GetRValue(clMaroon)div 2,
                       TempColor+GetGValue(clMaroon)div 2,
                       TempColor+GetBValue(clMaroon)div 2);


근데 이렇게 해 보시면 그림이 좀 이상하다는걸 느끼실 겁니다.
전체적으로 한가지 색도로 나타나질 않으니깐...


음... 아무래도 처음 방법을 쓰는것이 젤루 좋을 것 같네요...

마지막으로 하나만 더...


우선 이런 변수를 만들고...

  PR,PG,PB: Byte;

글구 나서 각 변수에 이런 값을 넣고...


  PR:=GetRValue(clMaroon);
  PG:=GetGValue(clMaroon);
  PB:=GetBValue(clMaroon);


글구 아까 그 코드를 아래와 같이 변경시킵니다.

      Pixels[i,j]:=RGB(TempColor*PR div $FF,

                       TempColor*PG div $FF,
                       TempColor*PB div $FF);

그럼 전체적으로 많이 어둡긴 하지만 갈색톤이 될 겁니다.

음... PB 값을 적당히 조절하심
연한 갈색톤이랑 진한 갈색톤 등을 얻을 수 있을겁니다...

그럼...

지금까지 무념였습니다.



+ -

관련 글 리스트
5455 [기타] 아래 답변에서 빠진거... 무념 862 1999/01/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.