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

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

Как сделать изображение бледнее?


Ш-К ©   (2005-06-23 16:47:00) 

Любой алгоритм какой есть.


uny   (2005-06-23 20:15:00) [1]

Ш-К  
серый цвет в RGB - это когда значения R, G, B, равны между собой.
если R, G, B отличаются друг от друга на малое значение, то получается серый цвет с оттенками.
Вам подсказали в [2], если при использовании [2] рисунок получается тёмным, то добавьте к каждому из R, G, B константу.


Ш-К   (2005-06-23 17:58:00) [2]

Вот так делаю - увеличивается котрастность:

procedure TForm1.Button1Click(Sender: TObject);
var
 j: Integer;
 I: Integer;
 _Line: pByteArray;

 function RoundEx(AVal: Byte): Byte;
 var
   _ii: Integer;
 begin
   _ii := Round(AVal * 1.7);
   if _ii > 255 then
     Result := 255
   else
     Result := _ii;
 end;

begin
 for I := 0 to Image1.Picture.Bitmap.Height - 1 do
   begin
     _Line := Image1.Picture.Bitmap.ScanLine[I];
     for j := 0 to Image1.Picture.Bitmap.Width - 1 do
       begin
         _Line^[J * 3] := RoundEx(_Line^[J * 3 + 0]);
         _Line^[J * 3 + 1] := RoundEx(_Line^[J * 3 + 1]);
         _Line^[J * 3 + 2] := RoundEx(_Line^[J * 3 + 2]);
       end;
   end;
 Image1.Refresh;
end;


Ш-К   (2005-06-23 17:50:00) [3]

Ну хорошо, увеличение белого цвета при уменьшении контрасности.
А лучше увелечение задаваемого цвета. (серого)
Как сделать?


  (2005-06-23 17:15:00) [4]

Удалено модератором


  (2005-06-23 17:07:00) [5]

Удалено модератором


Anatoly Podgoretsky   (2005-06-23 17:07:00) [6]

Ну может быть умножить на коэффициент менее 1


Наверх

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