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

Плавное затемнение изображения

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
          ('Error, bitmap format not supported.');

      try
       BytesPorScan:=
        Abs(Integer(BMP.Picture.Bitmap.ScanLine[1])-
            Integer(BMP.Picture.Bitmap.ScanLine[0])) ;
      except
        raise exception.create('Error');
      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; {procedure FadeOut}
  begin {button1_click}
    FadeOut(Image1, 5);
  end;

 

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


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