коды цветов в delphi

Colors/ru

Contents

Обзор

Преобразование значений между TColor и RGB

Модуль Graphics предосталяет следующие функции:

Преобразование типа TColor в/из строки

Функции для преобразования строк вроде «25500» или «$AA0088» или «clNavy» в TColor:

Чтобы преобразовать TColor в красивую строку, такую как «clNavy» или «$AA0002»:

Преобразование типа TColor в/из HTML-строки #rrggbb

Таблица стандартных цветов

Предусмотрено около 20 предопределенных цветовых Констант, которые совместимы с Delphi:

Цветовая константаОписание цветаШестнадцатеричное представление для использования с TColorПример
clBlackЧерныйTColor($000000);
clMaroonТемно-бордовыйTColor($000080);
clGreenЗеленыйTColor($008000);
clOliveОливково-зеленыйTColor($008080);
clNavyТемно-синийTColor($800000);
clPurpleТемно-фиолетовыйTColor($800080);
clTealСине-зеленыйTColor($808000);
clGrayСерыйTColor($808080);
clSilverСеребристыйTColor($C0C0C0);
clRedКрасныйTColor($0000FF);
clLimeСалатовыйTColor($00FF00);
clYellowЖелтыйTColor($00FFFF);
clBlueСинийTColor($FF0000);
clFuchsiaФуксияTColor($FF00FF);
clAquaГолубойTColor($FFFF00);
clLtGrayСветло-серыйTColor($C0C0C0);псевдоним для clSilver
clDkGrayТемно-серыйTColor($808080);псевдоним для clGray
clWhiteБелыйTColor($FFFFFF);
clCreamКремовыйTColor($F0FBFF);Lazarus 1.2 и новее
clMedGrayСредне-серыйTColor($A4A0A0);Lazarus 1.2 и новее
clMoneyGreenДенежная зеленьTColor($C0DCC0);Lazarus 1.2 и новее
clSkyBlueНебесно-голубойTColor($F0CAA6);Lazarus 1.2 и новее

Системные цвета

Пример: clInfoBk, clInfoText

Окно подсказок в MS Windows может иметь белый фон, поэтому вышеприведенный цвет будет отображаться белым. В Linux/gtk2 это может быть металлическая текстура, поэтому вышеприведенный будет рисовать текстуру. Если вы хотите поместить какой-либо текст в это окно, вам понадобится соответствующий контрастный цвет, например, clInfoText, иначе ваш текст может быть нечитаемым для пользователя. Например:

Системный цвет clInfoBk не может использоваться для Pen.Color и Font.Color. Если вы сделаете это, результат не определен и зависит от набора виджетов и пользовательской темы. То же самое для clInfoText: он может использоваться только как Font.Color. Использование его в качестве Brush.Color может не работать. На данный момент все виджеты позволяют использовать его как Pen.Color.

Изменения темы

Когда пользователь переключает тему, системные цвета меняются. ClInfoBk может измениться с белого на синий или с цвета на текстуру. Это изменение произойдет, когда вы назначите новый дескриптор кисти. Имейте в виду, что простое присвоение Brush.Color:=clInfoBk не назначает дескриптор кисти. Дескриптор кисти назначается в процессе использования. Например:

Таблица системных цветов

Нахождение значений RGB системного цвета

Используйте функцию ColorToRGB (в модуле Graphics), чтобы определить компоненты rgb системного цвета. Эта функция определяет, является ли цвет системным цветом, и, если это так, находится ли системный цвет в цветовой гамме текущей темы. Возвращаемое значение типа Longint можно понимать как обычный цвет:

Рисование элементов соответственно теме на ваших пользовательских элементах управления

Модуль Themes предоставляет функции для рисования отдельных элементов стандартных элементов управления. Например, чтобы нарисовать знак раскрытия узла, например, TTreeView, используйте следующий код:

Источник

коды цветов в delphi. 2. коды цветов в delphi фото. коды цветов в delphi-2. картинка коды цветов в delphi. картинка 2. Модуль Graphics предосталяет следующие функции:

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

В играх и графических пакетах этому байту нашли применение. Он часто ука­зывает прозрачность, но в офисных приложениях его просто игнорируют.

Давайте попробуем научиться работать с цветом на практике, заодно и познако­мимся с необходимыми функциями. Создайте новое приложение и установите на него компоненты так, как это показано на рис.

Итак, на форме три компонента TEdit. Для красного цвета компонент назовите RedEdit, ДЛЯ зеленого — GreenEdit, ну И ДЛЯ СИНвГО — BlueEdit. Так же на форме есть кнопка для смены цвета (ее имя не имеет значения) и компонент CoiorDialog, для смены цвета.

Если вы сами создаете пример, по­старайтесь все разместить так, как показано на рисунке выше (ближе к правому краю), потому что слева будем рисовать квадрат.

Для события кнопки onclick пишем код, показанный в листинге:

procedure TFormi.ButtonlClick(Sender: TObj ect);

В разделе var объявлена одна переменная целого типа Longint. Это целое число размером в 4 байта, оно будет использоваться для хранения значения цвета.

В первой строке показывается ОКНО смены цвета ColorDialogl.Execute. Если пользователь не выбрал цвет (об этом говорит конструкция if not), то выполнение процедуры прерывается с помощью exit.

В следующей строке идет присвоение строке ввода RedEdit значения красной составляющей цвета. Для этого сначала используется функция GetRValue. Ей пере­дается значение цвета в виде целого числа (переменная с). Результат—однобайт­ное число, которое показывает значение красной составляющей. Поскольку резуль­тат— число, то прежде чем его присваивать в строку ввода, оно должно быть пре­образовано в строку. Для этого переводим его в текст с помощью знакомой нам ФУНКЦИИ IntToStr.

То же самое проделываем и с зеленым цветом в следующей строке кода. Только для получения зеленой составляющей используется функция GetGValue.

Для получения синей составляющей используется функция GetBValue. Таким образом, после выполнения всех этих действий, мы разбили 4 байта цвета из пере­менной с на отдельные байты по цветам и разнесли их в соответствующие строки ввода.

После этого нужно заставить окно прорисоваться с помощью вызова метода Repaint.

Для события OnPaint напишем следующий код:

procedure TForml.FormPaint(Sender: TObj ect); begin

StrToIntDef(GreenEdit.Text, 0), StrToInt­Def (BlueEdit.Text,0));

Canvas.Rectangle(10,10, 250, 150);

Здесь надо проделать обратные действия — превратить три составляющих цвета из строк ввода в одно целое значение цвета. Для этого используется функция rgb (r, g, в). У этой функции три параметра, и все они целые числа.

В качестве параметров передаются значения, указанные в соответствующих строках ввода, с предварительным преобразованием их из строк в числа.

Результат преобразования цвета записываем в цвет кисти. После этого рисуется прямоугольник, у которого цвет фона будет тот, что мы выбрали.

И последнее — создадим обработчик события onchange для всех строк ввода.

У вас должны быть выделены все строки ввода серыми рамками. Теперь перей­дите в объектный инспектор на вкладку Events и дважды щелкните мышью по со­бытию onchange, чтобы создать обработчик сразу для всех выделенных компонен­тов. В нем напишите следующий код:

procedure TForm1.RedEditChange(Sender: TObject);

Попробуйте запустить этот пример. Теперь выбе­рите какой-нибудь цвет, и вы увидите составляющие этого цвета. Можете даже напрямую изменять зна­чения в строках ввода, и результат моментально бу­дет отражаться на цвете прямоугольника.

коды цветов в delphi. 5016662fb024. коды цветов в delphi фото. коды цветов в delphi-5016662fb024. картинка коды цветов в delphi. картинка 5016662fb024. Модуль Graphics предосталяет следующие функции:

Ну а теперь познакомимся с константами, кото­рые уже заготовлены для основных цветов. Вы можете их реально использовать в своих програм­мах и присваивать, как ранее это делалось в при­мере. Здесь не будут перечисляться все константы, потому что вы можете их сами в любой момент найти, если щелкнете в объектном инспекторе по свойству color любого компонента. Все, что вы увиди­те в этом списке, — это и есть константы, которые можно использовать. Этот при­ем довольно удобный, потому что сразу видно константу и цвет.

Источник

Здравствуйте. Вы находитесь на старом сайте и просматриваете устаревшую версию статьи.

Последняя версия статьи: здесь

Однако, если Вам так хочется. статью отсюда я удалять пока не собираюсь.

Вы ещё читаете? Вообще-то я уже написал. Сайт переезжает. Последняя версия статьи: здесь

Можно записать немного понятнее: Result:=r+256*g+65536*b;

Конечно же, существуют и обратные функции, объявленные всё в том же модуле:

function GetRValue(rgb: DWORD): Byte;
begin
Result := Byte(rgb);
end;

function GetGValue(rgb: DWORD): Byte;
begin
Result := Byte(rgb shr 8);
end;

function GetBValue(rgb: DWORD): Byte;
begin
Result := Byte(rgb shr 16);
end;

Это 16 цветов, знакомых каждому ребёнку. Далее представлена таблица этих цветов. (О колонке #RrGgBb я расскажу позже).

cbStandardColors

###НазваниеЦветЗначениеR,G,B#RrGgBb
clBlackЧёрный00,0,0#000000
clMaroonТёмно-красный128128,0,0#800000
clGreenЗелёный327680,128,0#008000
clOliveОливковый32896128,128,0#808000
clNavyТёмно-синий83886080,0,128#000080
clPurpleПурпурный8388736128,0,128#800080
clTealСтальной84213760,128,128#008080
clGrayСерый8421504128,128,128#808080
clSilverСеребряный12632256192,192,192#C0C0C0
clRedКрасный255255,0,0#FF0000
clLimeЯрко-зелёный652800,255,0#00FF00
clYellowЖёлтый65535255,255,0#FFFF00
clBlueСиний167116800,0,255#0000FF
clFuchsiaФиолетовый16711935255,0,255#FF00FF
clAquaБирюзовый167769600,255,255#00FFFF
clWhiteБелый16777215255,255,255#FFFFFF

Здесь, пожалуй, всё должно быть понятно. Идём дальше.

Всего 4 цвета, зачем-то выделенные как особые.

cbExtendedColors

###НазваниеЦветЗначениеR,G,B#RrGgBb
clMoneyGreenMoney Green12639424192,220,192#C0DCC0
clSkyBlueSky Blue15780518166,202,240#A6CAF0
clCreamCream15793151255,251,240#FFFBF0
clMedGrayMedium Gray10789024160,160,164#A0A0A4

Эти цвета можно встретить в окне приложения в различных кнопках, списках, меню и т.д. Данные цвета зависят от операционной системы и её текущих настроек. Именно поэтому они заданы отрицательными числами. Далее в таблице приведены их значения, а также цвета для стандартных тем Windows XP и Windows 7:

Источник

Delphi и цветовые пространства.

Важным аспектом для работающим с какой бы то ни было графикой кодера является работа с цветом. Как известно любая информация, включая цвет, храниться в виде чисел. Преобразовать цвет в число можно, выделив какие-то отличительные характеристики, в зависимости от этого выбора изменяется точность передаваемого цвета, то есть общее число возможных закодированных оттенков. А выбор зависит от цели использования цвета. Ничего нового программисту придумать не придется, ибо цветовых моделей (пространств) придумано уже не мало. Нужно только научиться переводить цвет из одной модели в другую, чем и займемся. Для чего это надо? Допустим нам надо изменить какую-то характеристику цвета, скажем яркость, тогда цвет удобно перегнать в HLS, изменить соответствующую характеристику и перегнать снова в рабочее пространство. Если же мы хотим сделать рисунок краснее, то тут удобно использовать RGB и так далее. Таким образом можно будет добавить стили, эффекты или что-то еще.

Итак, поговорим об представлениях цвета. В Delphi обычно используют тип TColor, являющейся BGR цветом, веб-дизайнерам ближе HTML-color и LAB. Игроделы наверняка сталкивались с GLColor и D3DColor, по сути это RGB модель с прозрачностью, в первом случае это вещественное представление, во втором целочисленное.

коды цветов в delphi. RGB 1. коды цветов в delphi фото. коды цветов в delphi-RGB 1. картинка коды цветов в delphi. картинка RGB 1. Модуль Graphics предосталяет следующие функции:коды цветов в delphi. RGB 2. коды цветов в delphi фото. коды цветов в delphi-RGB 2. картинка коды цветов в delphi. картинка RGB 2. Модуль Graphics предосталяет следующие функции:

коды цветов в delphi. CMYK 1. коды цветов в delphi фото. коды цветов в delphi-CMYK 1. картинка коды цветов в delphi. картинка CMYK 1. Модуль Graphics предосталяет следующие функции:коды цветов в delphi. CMYK 2. коды цветов в delphi фото. коды цветов в delphi-CMYK 2. картинка коды цветов в delphi. картинка CMYK 2. Модуль Graphics предосталяет следующие функции:

коды цветов в delphi. HLS 1. коды цветов в delphi фото. коды цветов в delphi-HLS 1. картинка коды цветов в delphi. картинка HLS 1. Модуль Graphics предосталяет следующие функции:

коды цветов в delphi. CIEXYZ 1. коды цветов в delphi фото. коды цветов в delphi-CIEXYZ 1. картинка коды цветов в delphi. картинка CIEXYZ 1. Модуль Graphics предосталяет следующие функции:коды цветов в delphi. CIEXYZ 2. коды цветов в delphi фото. коды цветов в delphi-CIEXYZ 2. картинка коды цветов в delphi. картинка CIEXYZ 2. Модуль Graphics предосталяет следующие функции:

Нормальная цветовая схема – плоская модель цветопередачи. Красные компоненты цвета вытянуты вдоль оси Х координатной плоскости (горизонтально), а зеленые компоненты цвета вытянуты вдоль оси Y (вертикально). При таком способе представления каждому цвету соответствует определенная точка на координатной плоскости. Спектральная чистота цветов уменьшается по мере того, как вы перемещаетесь по координатной плоскости влево. Но в этой модели не учитывается яркость. Данная модель аппаратно независима, поддерживает намного больше цветов, чем способны различать современные устройства (сканеры, мониторы, принтеры) CIE XYZ построено на основе зрительных возможностей так называемого “Стандартного Наблюдателя”, то есть гипотетического зрителя, возможности которого были тщательно изучены и зафиксированы в ходе проведенных комитетом CIE длительных исследований человеческого зрения. Комитет CIE провел множество экспериментов с огромным количеством людей, предлагая им сравнивать различные цвета, а затем с помощью совокупных данных этих экспериментов построил так называемые функции соответствия цветов (color matching functions) и универсальное цветовое пространство (universal color space), в котором был представлен диапазон видимых цветов, характерный для среднестатистического человека. Функции соответствия цветов — это значения каждой первичной составляющей света, которые должны присутствовать, чтобы человек со средним зрением мог воспринимать все цвета видимого спектра

коды цветов в delphi. CIELAB 1. коды цветов в delphi фото. коды цветов в delphi-CIELAB 1. картинка коды цветов в delphi. картинка CIELAB 1. Модуль Graphics предосталяет следующие функции:коды цветов в delphi. CIELAB 2. коды цветов в delphi фото. коды цветов в delphi-CIELAB 2. картинка коды цветов в delphi. картинка CIELAB 2. Модуль Graphics предосталяет следующие функции:

Конечно есть еще множество цветовых моделей, таких как CCY, Luv, модели Манселла и Оствальда, но они используются реже.

Источник

Коды цветов в delphi

коды цветов в delphi. . коды цветов в delphi фото. коды цветов в delphi-. картинка коды цветов в delphi. картинка . Модуль Graphics предосталяет следующие функции:


коды цветов в delphi. getcolor. коды цветов в delphi фото. коды цветов в delphi-getcolor. картинка коды цветов в delphi. картинка getcolor. Модуль Graphics предосталяет следующие функции:
Тема, о которой сегодня пойдет речь, работа с RGB цветом. И не смотря на то, что, на практике применять подобные знания приходится достаточно редко (если только вас не попросят написать какой-нибудь графический редактор), подобные знания не для кого не окажутся лишними. Мы рассмотрим несколько функций, которые позволят нам установить нужный цвет, получить цвет любого пикселя на экране, сохранить значение цвета в текстовом виде и загрузить его обратно, а также посмотрим как перевести цвет в формат HTML и OpenGL.

После краткого вступления перейдем к тому, что нам нравится больше всего, к программированию. Бросим на форму 3 TrackBar’а, меняя положение ползунков которых, мы будем менять насыщенность каждого цвета, составляющего палитру RGB. Для того чтобы преобразовать эти значения в цвет типа TColor, воспользуемся функцией RGB. Получившимся цветом будем окрашивать панель, играющую в нашем случае роль монитора.

Думаю из примера понятно, что, в качестве параметров функции RGB передаются коэффициенты красного, зеленого и синего цветов. Каждое изменение положения ползунка вызывает процедуру SetMomitorColor, так что мы можем наблюдать плавное изменение цвета. Однако это не единственная процедура, вызывающаяся движением ползунка. Посмотрим подробнее.

Процедура MoveLabel (приведенная ниже), как следует из названия, перемещает Label таким образом, что центр Label всегда находится точно под ползунком. В качестве параметров передаем сами компоненты, что делает процедуру универсальной для всех TrackBar’ов. Следующая строка устанавливает цвет текста в соответствии с текущей насыщенностью цвета палитры RGB, за который отвечает соответствующий TrackBar. Последняя процедура представляет текущий цвет в различных форматах (рассмотрим это позднее).

Теперь о том, как узнать цвет интересующего нас пикселя на экране. В этом нам поможет функция GetPixel. Так как определить координаты пикселя «на глаз» невозможно, проще (и логичнее) получить цвет пикселя, который находится под курсором мыши. Функция GetPixel возвращает значение типа TColor, и чтобы выделить из него значения составляющих его красного, зеленого и синего цветов, нужно воспользоваться функциями GetRValue, GetGValue и GetBValue соответственно. Приведенный ниже пример продемонстрирует работу этих функций.

И последнее. Для изменения режимов работы программы (ручная установка цвета / автоматическое определение цвета), бросим на форму CheckBox, который будет включать/выключать таймер.

Вот и все. Надеюсь, вам не было скучно. Удачи в программировании.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *