Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Контрастность и яркость картинки [D7, WinXP]


Katy ©   (2005-04-20 18:54:00) 

Нужно сделать средствами Delphi кариночку JPG или BMP ярче или темнее.
Кто-нибудь знает как?


Katy   (2005-04-21 10:01:00) [1]

СПАСИБО ОГРОМНОЕ :-)


Магнитоныч   (2005-04-20 23:08:00) [2]

Я знаю.

procedureRGBColors(Bitmap: TBitmap; nr, ng, nb: Byte);

  functionBLimit(B: Integer): Byte;
  begin
    ifB < 0 thenResult := 0
      else ifB > 255 thenResult := 255
        elseResult := B;
  end;

varx, y: Integer;
   Dest: pRGBTriple;
begin
 Bitmap.PixelFormat := pf24Bit;
  fory := 0 toBitmap.Height - 1 do begin
   Dest := Bitmap.ScanLine[y];
    forx := 0 toBitmap.Width - 1 do begin
      withDest^ do begin
       rgbtBlue  := BLimit(rgbtBlue + nb);
       rgbtGreen := BLimit(rgbtGreen + ng);
       rgbtRed   := BLimit(rgbtRed + nr);
      end;
     Inc(Dest);
    end;
  end;
end;


К примеру:
Светлее RGBColors(Bmp, 50, 50, 50);
Темнее RGBColors(Bmp, -50, -50, -50);


Katy   (2005-04-20 18:55:00) [3]

Светлее или темнее :-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо