![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Спектр цветов [D6]
Igor_Z © (2007-03-02 13:04:00)Уважаемые мастера.
Скажите, как OnPaint формы
получить спектр цветов, как в ColorDialog.
Заранее спасибо.
KADAN (2007-03-02 14:23:00) [1]procedure TForm1.FormPaint(Sender: TObject);
var i, j: integer;
r, g, b: Byte;
D: Real;
begin
D := ClientWidth / 3;
for i := 0 to ClientWidth - 1 do begin
r := 0; g := 0; b := 0;
if i <= D then begin
r := Min(255, Round(511 * (1 - i / D)));
g := Min(255, Round(511 * (i / D)));
end else
if i <= 2 * D then begin
g := Min(255, Round(511 * (1 - (i - D) / D)));
b := Min(255, Round(511 * ((i - D) / D)));
end else begin
b := Min(255, Round(511 * (1 - (i - 2 * D) / D)));
r := Min(255, Round(511 * ((i - 2 * D) / D)));
end;
for j := 0 to ClientHeight - 1 do begin
Canvas.Pixels[i, j] := RGB(Round(r + (127 - r) * j / ClientHeight), Round(g + (127 - g) * j / ClientHeight), Round(b + (127 - b) * j / ClientHeight));
end;
end;
end;
SlymRO (2007-03-02 13:24:00) [2]for r:=0 to 255 do
for g:=0 to 255 do
for b:=0 to 255 do
PutPixel:=rgb(r,g,b);
всего 2^24 вариантов
clickmaker (2007-03-02 13:08:00) [3]1) нарисовать картинку попиксельно/содрать скриншот, сохранить в bmp -> TBitmap
2) рисовать попиксельно в OnPaint
3) GradientFill()