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

Советы » Цвета и Палитра » Работа с цветами

{ **** 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com