Image 컴퍼넌트를 이용하여 Form Fade-Out 기법을 주는 방법에 대해서 알아보자.
Fade-Out 효과란 영화 "조명을 끄고 완전히 어두운 상태에서 장면전환을 하는 것 암전방법에는 페이드 아웃 서서히 조명을 끄는 것 과 컷 아웃 순간적으로 조명을 끄는 것 이 있다."
Form에 Image컴퍼넌트를 올려놓고, alClient 속성을 준후 적당한 Image(Bitmap)를 로딩한후에 아래의 함수를 호출하여 Fade-Out 효과를 줄 수 있다.
Procedure FadeOut(const BMP:TImage; Pause:integer) ;
Var
BytesPorScan : integer;
w,h : integer;
p : pByteArray;
counter : integer;
Begin
If Not (BMP.Picture.Bitmap.PixelFormat in [pf24Bit, pf32Bit]) Then
raise exception.create('지원하지 않는 BMP 포맷입니다.') ;
Try
BytesPorScan:= Abs(Integer(BMP.Picture.Bitmap.ScanLine[1])
-Integer(BMP.Picture.Bitmap.ScanLine[0])) ;
Except
raise exception.create('오류') ;
End;
{ Image 픽셀의 RGB 값을 감소시킨다. }
For Counter:=1 to 256 Do Begin
For h:=0 to BMP.Picture.Bitmap.Height-1 Do Begin
P:=BMP.Picture.Bitmap.ScanLine[h];
For w:=0 to BytesPorScan-1 Do
If P^[w] >0 then P^[w]:=P^[w]-1;
End;
Sleep(Pause) ;
BMP.Refresh;
End;
End;




