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
[5454] [답변] FECI49NU/ Color image를 흑백 으로 전환...
무념 [ ] 1012 읽음    1999-01-04 23:42
안녕하셔요 ?
무념입니다.

일단 Igame2 란 이름의 TImage 콤포넌트에
그림이 들어있다고 하고...
고걸 Canvas 단위에서 고친다고 하면...

var
  i,j: Integer;
  TempR,TempB,TempG: Word;
  TempColor: Byte;
begin
  for i:=0 to Image2.Width-1 do for j:=0 to Image2.Height-1 do
  begin
    with Image2.Canvas do
    begin
      TempR:=GetRValue(Pixels[i,j]);
      TempG:=GetGValue(Pixels[i,j]);
      TempB:=GetBValue(Pixels[i,j]);
      TempColor:=(TempR+TempG+TempB)div 3;
      Pixels[i,j]:=RGB(TempColor,TempColor,TempColor);
    end;
  end;
end;

이렇게 하면 그림이 회색계통으로 바뀔겁니다.
음... 뭐 다른 방법도 많겠지만...

만약 그림의 팔레트를 위의 방법을 응용해서 바꿔주면
시간이 덜 걸리겠죠...
(물론 Full Color 그림이 아닌 256 컬러 그림의 얘기지만서도...)

도움이 되셨기를...

지금까지 무념였습니다.

P.S. 역시 Pixel 로 접근해서는 속도가 느리군요...
파일을 직접 액세스해서 바꾸거나
아님 비트맵 이미지의 메모리영역으로 직접 가서
고기서 바꾸는게 좋겠군요...


+ -

관련 글 리스트
5454 [답변] FECI49NU/ Color image를 흑백 으로 전환... 무념 1012 1999/01/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.