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

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

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

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


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;

 

Комментарии   

 
0 #1 Kobart 06.02.2012 23:37
Если нетрудно,дайте справку полнее: на какой компонент привязать этот код? Я сделал просмотрщик графики и мне нужно на обычный Button повесить возможность изменять яркость просматриваемых фото.
P.S. Я-новичок.
Цитировать
 
 
0 #2 R 09.02.2012 18:19
Создай модуль, засунь туда код, а сам модуль прикрепи к форме. Нажимая на кнопку, вызываешь процедуру helligkeit_aend ern, передаешь в нее Bitmap картинки и коэффициент осветления (затемнения)
Цитировать
 
 
0 #3 Максим 20.06.2013 07:53
У меня почему то не у всей картинки яркость меняется - правая часть остается неизменной. Что это может быть?
Цитировать
 

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


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