Плавное исчезание (Fade Out) изображения
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;
При нажатии на кнопку, изображение будет плавно исчезать.
Комментарии