Изменение яркости изображения

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

Коэффициент больше единицы осветляет изображение, коэффициент меньше единицы затемняет.


type
   TRGBTripleArray = array[0..32768] of TRGBTriple;

procedure helligkeit_aendern(
          const Bitmap: TBitmap; const Faktor: Double);
var
   i,j: Integer;
   r,g,b: Integer;
   Reihe: ^TRGBTriple;
begin
   for i:= 0 to Bitmap.Height-1 do
   begin
     Reihe:= Bitmap.Scanline[i];
     for j:= 0 to Bitmap.Width-1 do
     begin
       r:=Round(Reihe^.rgbtred * faktor);
       b:=Round(Reihe^.rgbtblue * faktor);
       g:=Round(Reihe^.rgbtgreen * faktor);
       if r>255 then r:=255;
       if g>255 then g:=255;
       if b>255 then b:=255;
        Reihe^.rgbtred   := r;
        Reihe^.rgbtBlue  := b;
        Reihe^.rgbtgreen := g;
        inc(Reihe);
     end;
   end;
   bitmap.Assign(Bitmap);
end;