![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать изображение бледнее?
Ш-К © (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