Статьи
|
Поместите TImage (Image1) на форму и загрузите в него 24-битное или 32-битное изображение.
Поместите TButton (Button1) на форму и в событие OnClick кнопки запишите код:
procedure TForm1.Button1Click(Sender: TObject);
procedure FadeOut(const BMP: TImage; Pause: integer) ;
var
BytesPorScan : integer;
w,h : integer;
p : pByteArray;
counter : integer;
begin
{ Это работает только с 24 или 32 битными битмапами }
if not (BMP.Picture.Bitmap.PixelFormat
in [pf24Bit, pf32Bit])
then raise exception.create
('Ошибка, формат изображения не поддерживается.') ;
try
BytesPorScan:=
Abs(Integer(BMP.Picture.Bitmap.ScanLine[1])-
Integer(BMP.Picture.Bitmap.ScanLine[0])) ;
except
raise exception.create('Ошибка') ;
end;
{ Уменьшаем 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; { конец процедуры FadeOut }
begin {button1_click}
FadeOut(Image1, 5) ;
end;
При нажатии на кнопку, изображение будет плавно исчезать.
|