Карта сайтаСсылкиКонтакты

Плавное исчезание (Fade Out) изображения

PDF Печать
Статьи

Поместите 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;

При нажатии на кнопку, изображение будет плавно исчезать.


 

Добавить комментарий


Защитный код
Обновить