Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 592

•  TDictionary Custom Sort  5 733

•  Fast Watermark Sources  5 529

•  3D Designer  8 080

•  Sik Screen Capture  5 831

•  Patch Maker  6 316

•  Айболит (remote control)  6 308

•  ListBox Drag & Drop  5 169

•  Доска для игры Реверси  94 410

•  Графические эффекты  6 499

•  Рисование по маске  5 564

•  Перетаскивание изображений  4 692

•  Canvas Drawing  5 070

•  Рисование Луны  4 795

•  Поворот изображения  4 342

•  Рисование стержней  3 057

•  Paint on Shape  2 293

•  Генератор кроссвордов  3 164

•  Головоломка Paletto  2 488

•  Теорема Монжа об окружностях  3 272

•  Пазл Numbrix  2 143

•  Заборы и коммивояжеры  2 792

•  Игра HIP  1 765

•  Игра Go (Го)  1 683

•  Симулятор лифта  2 016

•  Программа укладки плитки  1 738

•  Генератор лабиринта  2 179

•  Проверка числового ввода  1 865

•  HEX View  2 161

•  Физический маятник  1 856

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Работа с цветами



Автор: Gero

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Работа с цветами

Нeсколько полезных функций для работы с цветами.

// Получить цвет, темнее исходного на Percent процентов
function DarkerColor(const Color : TColor; Percent : Integer) : TColor;
// Получить цвет, светлее исходного на Percent процентов
function LighterColor(const Color : TColor; Percent : Integer) : TColor;
// Смешать несколько цветов и получить средний
function MixColors(const Colors : array of TColor) : TColor;
// Сделать цвет черно-белым
function GrayColor(Color : TColor) : TColor;

Зависимости: Windows, Graphics
Автор:       Gero, tov.vaskin@inbox.ru, Днепропетровск(Украина)
Copyright:   Gero
Дата:        11 февраля 2004 г.
***************************************************** }

function DarkerColor(const Color: TColor; Percent: Integer): TColor;
var
  R, G, B: Byte;
begin
  Result := Color;
  if Percent <= 0 then
    Exit;
  if Percent > 100 then
    Percent := 100;
  Result := ColorToRGB(Color);
  R := GetRValue(Result);
  G := GetGValue(Result);
  B := GetBValue(Result);
  R := R - R * Percent div 100;
  G := G - G * Percent div 100;
  B := B - B * Percent div 100;
  Result := RGB(R, G, B);
end;

function LighterColor(const Color: TColor; Percent: Integer): TColor;
var
  R, G, B: Byte;
begin
  Result := Color;
  if Percent <= 0 then
    Exit;
  if Percent > 100 then
    Percent := 100;
  Result := ColorToRGB(Result);
  R := GetRValue(Result);
  G := GetGValue(Result);
  B := GetBValue(Result);
  R := R + (255 - R) * Percent div 100;
  G := G + (255 - G) * Percent div 100;
  B := B + (255 - B) * Percent div 100;
  Result := RGB(R, G, B);
end;

function MixColors(const Colors: array of TColor): TColor;
var
  R, G, B: Integer;
  i: Integer;
  L: Integer;
begin
  R := 0;
  G := 0;
  B := 0;
  for i := Low(Colors) to High(Colors) do
  begin
    Result := ColorToRGB(Colors[i]);
    R := R + GetRValue(Result);
    G := G + GetGValue(Result);
    B := B + GetBValue(Result);
  end;
  L := Length(Colors);
  Result := RGB(R div L, G div L, B div L);
end;

function GrayColor(Color: TColor): TColor;
var
  Gray: Byte;
begin
  Result := ColorToRGB(Color);
  Gray := (GetRValue(Result) + GetGValue(Result) + GetBValue(Result)) div 3;
  Result := RGB(Gray, Gray, Gray);
end;

Пример использования:

var
  i, j: Integer;
begin
  ...
  with Bitmap1 do
    for i := 0 to Width - 1 do
      for j := 0 to Height - 1 do
        Canvas.Pixels[i, j] := GrayColor(Canvas.Pixels[i, j]);
  ...
end;




Похожие по теме исходники

Nstruct (работа с DBF)

Работа с принтером

fwZIP - Работа с ZIP архивами




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте