цвет гармония
Смешивание цветов -> Форум на Исходниках.Ру
html { overflow-x: auto }
.mstop {
BORDER-RIGHT: #000 1px dotted; PADDING-RIGHT: 3px; BORDER-TOP: #000 1px dotted; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 10px; BACKGROUND: #e4eaf2; PADDING-BOTTOM: 3px; MARGIN: 8px auto 0px; BORDER-LEFT: #8394b2 4px solid; COLOR: #000; PADDING-TOP: 3px; BORDER-BOTTOM: 0px
}
.msmain {
BORDER-RIGHT: #000 1px dotted; PADDING-RIGHT: 4px; BORDER-TOP: 0px; PADDING-LEFT: 4px; BACKGROUND: #fafcfe; PADDING-BOTTOM: 4px; MARGIN: 0px auto 8px; BORDER-LEFT: #8394b2 4px solid; COLOR: #465584; PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px dotted
}
.gmstop {
BORDER-RIGHT: #000 1px dotted; PADDING-RIGHT: 3px; BORDER-TOP: #000 1px dotted; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 10px; BACKGROUND: #faa298; PADDING-BOTTOM: 3px; MARGIN: 8px auto 0px; BORDER-LEFT: #8394b2 4px solid; COLOR: #000; PADDING-TOP: 3px; BORDER-BOTTOM: 0px
}
.gmsmain {
BORDER-RIGHT: #000 1px dotted; PADDING-RIGHT: 4px; BORDER-TOP: 0px; PADDING-LEFT: 4px; BACKGROUND: #fafcfe; PADDING-BOTTOM: 4px; MARGIN: 0px auto 8px; BORDER-LEFT: #8394b2 4px solid; COLOR: #465584; PADDING-TOP: 4px; BORDER-BOTTOM: #000 1px dotted
}
form { display: inline }
img { vertical-align: middle; border: 0px }
BODY { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; color: #000; margin: 0px 10px 0px 10px; background-color: #FFF }
TABLE, TR, TD { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; color: #000 }
a:link, a:active, a:visited { text-decoration: underline; color: #000000 }
a:hover { color: #CC3333 }
.spoiler {
FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif;
FONT-SIZE: 11px;
BORDER: #333333 1px solid;
COLOR: #666666;
BACKGROUND-COLOR: #666666;
}
fieldset.search { padding: 6px; line-height: 150% }
label { cursor: pointer }
img.attach { border: 2px outset #EEF2F7; padding: 2px }
.googleroot { padding: 6px; line-height: 130% }
.googlechild { padding: 6px; margin-left: 30px; line-height: 130% }
.googlebottom, .googlebottom a:link, .googlebottom a:visited, .googlebottom a:active { font-size: 11px; color: #3A4F6C }
.googlish, .googlish a:link, .googlish a:visited, .googlish a:active { font-size: 14px; font-weight: bold; color: #00D }
.googlepagelinks { font-size: 1.1em; letter-spacing: 1px }
.googlesmall, .googlesmall a:link, .googlesmall a:active, .googlesmall a:visited { font-size: 10px; color: #434951 }
li.helprow { padding: 0px; margin: 0px 0px 10px 0px }
ul#help { padding: 0px 0px 0px 15px }
option.cat { font-weight: bold }
option.sub { font-weight: bold; color: #555 }
.caldate { text-align: right; font-weight: bold; font-size: 11px; color: #777; background-color: #DFE6EF; padding: 4px; margin: 0px }
.warngood { color: green }
.warnbad { color: red }
#padandcenter { margin-left: auto; margin-right: auto; text-align: center; padding: 14px 0px 14px 0px }
#profilename { font-size: 28px; font-weight: bold }
#calendarname { font-size: 22px; font-weight: bold }
#photowrap { padding: 6px }
#phototitle { font-size: 24px; border-bottom: 1px solid black }
#photoimg { text-align: center; margin-top: 15px }
#ucpmenu { line-height: 150%; width: 22%; border: 1px solid #345487; background-color: #F5F9FD }
#ucpmenu p { padding: 2px 5px 6px 9px; margin: 0px }
#ucpcontent { background-color: #F5F9FD; border: 1px solid #345487; line-height: 150%; width: auto }
#ucpcontent p { padding: 10px; margin: 0px }
#ipsbanner { position: absolute; top: 1px; right: 5% }
#logostrip { border: 1px solid #345487; background-color: #6EA1E3; padding: 0px; margin: 0px }
.logo { color: #FFFFFF }
.logo a:link, .logo a:visited, .logo a:active { text-decoration: none; color: #FFFFFF }
.logo a:hover { text-decoration: underline; color: #000000 }
#submenu { border: 1px solid #BCD0ED; background-color: #DFE6EF; font-size: 10px; margin: 3px 0px 3px 0px; color: #3A4F6C; font-weight: bold }
#submenu a:link, #submenu a:visited, #submenu a:active { font-weight: bold; font-size: 10px; text-decoration: none; color: #3A4F6C }
#userlinks { border: 1px solid #C2CFDF; background-color: #F0F5FA }
#navstrip { font-weight: bold; padding: 6px 0px 6px 0px }
.activeuserstrip { background-color: #BCD0ED; padding: 6px }
.pformstrip { background-color: #D1DCEB; color: #3A4F6C; font-weight: bold; padding: 7px; margin-top: 1px }
.pformleft { background-color: #F5F9FD; padding: 6px; margin-top: 1px; width: 10%; border-top: 1px solid #C2CFDF; border-right: 1px solid #C2CFDF }
.pformleftw { background-color: #F5F9FD; padding: 6px; margin-top: 1px; width: 40%; border-top: 1px solid #C2CFDF; border-right: 1px solid #C2CFDF }
.pformright { background-color: #F5F9FD; padding: 6px; margin-top: 1px; border-top: 1px solid #C2CFDF }
.post1 { background-color: #F8F8FD }
.post2 { background-color: #E7E9EE }
.postlinksbar { background-color: #D1DCEB; padding: 7px; margin-top: 1px; font-size: 10px }
.row1 { background-color: #F5F9FD }
.row2 { background-color: #DFE6EF }
.row3 { background-color: #EEF2F7 }
.row4 { background-color: #E4EAF2 }
.pinned_topic { background-color: #D1DCEB }
.darkrow1 { background-color: #6EA1E3 }
.darkrow2 { background-color: #BCD0ED; color: #3A4F6C }
.darkrow3 { background-color: #D1DCEB; color: #3A4F6C }
.hlight { background-color: #DFE6EF }
.dlight { background-color: #EEF2F7 }
.titlemedium { font-weight: bold; color: #3A4F6C; background-color: #D1DCEB; padding: 7px; margin: 0px }
.titlemedium a:link, .titlemedium a:visited, .titlemedium a:active { text-decoration: underline; color: #3A4F6C }
.maintitle { color: #FFFFFF; background-color: #6EA1E3; vertical-align: middle; font-weight: bold; letter-spacing: 1px; font-size: 12px; padding-top: 8px; padding-bottom: 8px; padding-left: 6px }
.maintitle a:link, .maintitle a:visited, .maintitle a:active { text-decoration: none; color: #FFFFFF }
.maintitle a:hover { text-decoration: underline }
.plainborder { border: 1px solid #345487; background-color: #F5F9FD }
.tableborder { border: 1px solid #345487; background-color: #6EA1E3; padding: 0; margin: 0 }
.tablefill { border: 1px solid #345487; background-color: #F5F9FD; padding: 6px }
.tablepad { background-color: #F5F9FD; padding: 6px }
.tablebasic { width: 100%; padding: 0px 0px 0px 0px; margin: 0px; border: 0px }
.wrapmini { float: left; line-height: 1.5em; width: 25% }
.pagelinks { float: left; line-height: 1.2em; width: 35% }
.desc { font-size: 10px; color: #434951 }
.edit { font-size: 9px }
.signature { font-size: 10px; color: #999999; line-height: 150% }
.postdetails { font-size: 10px }
.postcolor { font-size: 12px; line-height: 160% }
.normalname { font-size: 12px; font-weight: bold; color: #003 }
.normalname a:link, .normalname a:visited, .normalname a:active { font-size: 12px }
.unreg { font-size: 11px; font-weight: bold; color: #900 }
.searchlite { font-weight: bold; color: #F00; background-color: #FF0 }
#QUOTE { font-family: Verdana, Arial; font-size: 11px; color: #465584; background-color: #FAFCFE; border: 1px solid #000; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; overflow: auto; }
#CODE {
font-family: Courier New, serif;
font-size: 11px;
color: #465584;
background-color: #FAFCFE;
border: 1px solid #000;
line-height: 120%;
padding-top: 2px;
padding-right: 2px;
padding-bottom: 2px;
padding-left: 2px;
overflow: auto;
}
TABLE.post_table {
background-color: #345487;
vertical-align:top;
}
TABLE.post_table TD{
background-color: #CCC;
padding: 3px 3px 3px 3px;
}
TABLE.post_table TH{
background-color: #9FBCE3;
padding: 3px 3px 3px 3px;
}
.copyright { font-family: Verdana, Tahoma, Arial, Sans-Serif; font-size: 9px; line-height: 12px }
.codebuttons { font-size: 10px; font-family: verdana, helvetica, sans-serif; vertical-align: middle }
.forminput, .radiobutton, .checkbox { font-size: 11px; font-family: verdana, helvetica, sans-serif; vertical-align: middle }
.textinput { background-color: #E4EAF2; font-size: 12px; font-family: courier new, serif; vertical-align: middle }
.thin { padding: 6px 0px 6px 0px; line-height: 140%; margin: 2px 0px 2px 0px; border-top: 1px solid #FFF; border-bottom: 1px solid #FFF }
.purple { color: purple; font-weight: bold }
.red { color: red; font-weight: bold }
.green { color: green; font-weight: bold }
.blue { color: blue; font-weight: bold }
.orange { color: #F90; font-weight: bold }
.voteprefix {color:green}
.movedprefix {color:red}
.clubprefix {color:blue}
.pinnedprefix {}
.p{table-layout:fixed}
#CODE,pre{margin:0;
white-space:-o-pre-wrap;
white-space:-moz-pre-wrap;
word-wrap:break-word;
}
PRE {
MARGIN: 0px; WORD-WRAP: break-word
}
·
Главная
·
Журнал ·
Алгоритмы
·
Естественные Науки
·
Wiki
ПРАВИЛА
FAQ
Помощь
Поиск
Участники
Календарь
Избранное
DigiMania
RSS
Здравствуйте, Гость [64.28.181.210]
Вход ·
Регистрация ·
Выслать повторно письмо для активации ·
Что даёт регистрация на форуме?
Форум на Исходниках.RU Программирование Delphi Delphi: Multimedia
ПРАВИЛА РАЗДЕЛА · FAQ раздела DelphiПожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]! Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:1. Как использовать в программе изображения gif2. Как вопроизвести WAV/MP3/AVI ... (продолжение следует) ...Выразить свое отношение к модераторам раздела можно здесь: D[u]fa
Модераторы: Dufa, Smike
Ответить · Новое голосование
'> Смешивание цветов, Полупрозрачное накладывание цвета на изображение
Подписаться на тему |
Сообщить другу |
Скачать/распечатать тему
Моральный_урод
Сообщ. #1 от 15.04.08, 07:30
Быстрая цитата · Цитата
Newbie
Профиль · PM
Рейтинг (т): нет
При использовании изображения в качесте фона формы, возникает "цветовая бесскусица", т.е при различных стилях оформления, цветовая гамма рисунка не очень красиво смотрится со стилем (рисунок имеет красный оттенок, цвет гармония стиль синий). Для решения этой проблемы, представляю вашему вниманию процедуру BackImage. Она накладывает на изображение системный цвет (зависящий от стиля оформления). Получается полупрозрачное наложение двух слоёв цвет гармония полная гармония цветов type PRGBArray=^TRGBArray; TRGBArray=array[0..1000000] of TRGBTriple;procedure TForm1.BackImage;varPRGa: PRGBArray;X,Y: Integer;begin//до этого надо запихать битмап в Image1Image1.Picture.Bitmap.PixelFormat:=pf24bit;for Y:=0 to Image1.Picture.Bitmap.Height-1 do beginPRGa:=Image1.Picture.Bitmap.ScanLine[Y];for X:=0 to Image1.Picture.Bitmap.Width-1 dobegin//значение непрозрачности битмапа = 10%//остальные 90% это цвет clBtnFace//color_BtnFace он же clBtnFace PRGa[X].rgbtRed:=(10*PRGa[X].rgbtRed+90*GetRValue(GetSysColor(color_BtnFace))) div 100; PRGa[X].rgbtGreen:=(10*PRGa[X].rgbtGreen+90*GetGValue(GetSysColor(color_BtnFace))) div 100; PRGa[X].rgbtBlue:=(10*PRGa[X].rgbtBlue+90*GetBValue(GetSysColor(color_BtnFace))) div 100;end end;end;ЗЫ если этот код немножко переделать, его можно испол. для смешивания двух цвет гармония более изображений
andriano
Сообщ. #2 от 15.04.08, 21:41
Быстрая цитата · Цитата
Full Member
Профиль · PM
Рейтинг (т): 13
1. Не пробовал посмотреть, что получится, если несколько раз прогнать картинку через этот код, даже для нейтрального в целом результата? Разумнее было бы подумать об алгоритме, СОХРАНЯЮЩЕМ КОНТРАСТНОСТЬ.2. Зачем в каждой точке трижды вызывать GetSysColor?3. Советую перед желением на 100 сначала добавить 50, чтобы происходило округление к ближайшему, цвет гармония не по недостатку.4. И еще один совет по оптимизации:Ritem := 9*GetRValue(GetSysColor(color_BtnFace)) + 5;...for...PRGa[X].rgbtRed := (PRGa[X].rgbtRed + Ritem) div 10;
antonn
Сообщ. #3 от 16.04.08, 00:07
Быстрая цитата · Цитата
Profi
Профиль · PM
Рейтинг (т): 53
Цитата PRGBArray=^TRGBArray;TRGBArray=array[0..1000000] of TRGBTriple;const MaxPixelCount = MaxInt div SizeOf(TRGBTriple);type PRGBArray = ^TRGBArray; TRGBArray = array[0..MaxPixelCount-1] of TRGBTriple;
___________
Моральный_урод
Сообщ. #4 от 17.04.08, 04:05
Быстрая цитата · Цитата
Newbie
Профиль · PM
Рейтинг (т): нет
Спосибо за критику! Всё учту
Моральный_урод
Сообщ. #5 от 17.04.08, 05:16
Быстрая цитата · Цитата
Newbie
Профиль · PM
Рейтинг (т): нет
Цитата Разумнее было бы подумать об алгоритме, СОХРАНЯЮЩЕМ КОНТРАСТНОСТЬЯ как раз, над этим, цвет гармония работал. Пытаюсь сделать эффект умножения/затемнения, как в фотошопе, но не как не могу вычислить зависимость изменения RGB, не хочу преобразовывать изображение в HBL (или HBS)
Dimonka
Сообщ. #6 от 17.04.08, 12:32
Быстрая цитата · Цитата
Junior
Профиль · PM
Рейтинг (т): 4
О способах наложения неплохо написано вот здесь:http://www.pegtop.net/delphi/articles/blendmodes/
Моральный_урод
Сообщ. #7 от 21.04.08, 06:18
Быстрая цитата · Цитата
Newbie
Профиль · PM
Рейтинг (т): нет
Цитата О способах наложения неплохо написано вот здесьТам не то, мне надо именно формулу увеличения насыщенности или изменения контрастности, из цветов RGB.
--Ins--
Сообщ. #8 от 21.04.08, 10:09
Быстрая цитата · Цитата
Senior Member
Профиль · PM
Рейтинг (т): 74
Цитата мне надо именно формулу увеличения насыщенности или изменения контрастности, из цветов RGB.Попробуем порассуждать. Контрастность, по определению, это отношение освещенности самой светлой точки к самой темной. Увеличить контрастность изображения - это сделать все светлые еще светлее, цвет гармония все темные - еще темнее. Т.е. разложи цвета на составляющие (R, G, B), проведи мысленно середину освещенности (значение 127), цвет гармония если значение составляющей больше этой середины - его нужно увеличить, если меньше - уменьшить. На сколько увеличивать/уменьшать? Допустим мы хотим увеличить контрастность в 2 раза. Попробуй так: NewVal := 127 + (NewVal - 127)*2. Разумеется, значение не должно превысить 255 цвет гармония принизить 0, т.е.NewVal := Max(Min((127 + (NewVal - 127) * Scale), 255), 0);
___________ Меньше лазишь в интернете - здоровее будут дети.
andriano
Сообщ. #9 от 21.04.08, 20:06
Быстрая цитата · Цитата
Full Member
Профиль · PM
Рейтинг (т): 13
--Ins--, для гадаций серого этот алгоритм будет работать, как нужно (если не считать маленькой оговорки, что для совместимости с ручкой настройки контрастности ламповой техники зачастую синхронно с контрастностью увеличивают цвет гармония яркость, примерно так: NewVal := OldVal*koeff;)Но я лично придерживаюсь мнения, что все равно (не взирая на совместимость) правильна именно формула, приведенная тобой.Но для цветного изображения она будет приводить к изменению насыщенности, поэтому ее надо бы откорректировать.Но прежде, чем думать, как это сделать, неплохо бы сначала представить алгоритм изменения насыщенности.При изменении насыщенности у нас должна сохраняться яркость, поэтому следует вычислить среднюю яркость цвет гармония уже от нее (вместо 127 в твоей формуле) растаскивать цвета.Откуда очевидное усовершенствование приведенной тобой формулы для цветного случая: растащить как указано, яркость, цвет гармония расстояние между цветами оставить неизменным.
Моральный_урод
Сообщ. #10 от 24.04.08, 05:42
Быстрая цитата · Цитата
Newbie
Профиль · PM
Рейтинг (т): нет
Цитата Попробуй так: NewVal := 127 + (NewVal - 127)*2Я уже так пробывал, работает только к уменьшению насыщенности (или контрасности, они похожи), при увеличение же пропорционально изменяются только те два канала, которые дальше от 127, ближайший третий - непонятно как, цвет гармония если он равен 127 - то воще неизвестно увеличевать или уменьшать его (а он изменяется)? Плюс ко всему этому - фотошоп сам не корректно изменяет насыщенность/контрасность, так что методом тыка тут не как - нужна формула.
andriano
Сообщ. #11 от 24.04.08, 19:39
Быстрая цитата · Цитата
Full Member
Профиль · PM
Рейтинг (т): 13
Моральный_урод, формулу можно вывести из тех соображений, что я привел выше.Если это представляется слишком трудным (а сделать это, по хорошему, надо аккуратно с учетом гаммы), то проще будет обойтись двойным преобразованием RGB->HVS->коррекция->RGB.
Моральный_урод
Сообщ. #12 от Сегодня, 04:45
Быстрая цитата · Цитата
Newbie
Профиль · PM
Рейтинг (т): нет
Для этого надо вычислить формулу увелечения насыщенности.Цитата RGB->HVS->коррекция->RGBХочу найти способ без преобразования.
0 пользователей читают эту тему (0 гостей цвет гармония 0 скрытых пользователей)
0 пользователей:
«
Предыдущая тема |
Delphi: Multimedia |
Следующая тема »
Форум на Исходниках.RU · Delphi · Delphi: Multimedia
Быстрый ответ ·
Ответить · Новое голосование
Информация о Госте
Введите ваше имя
Кнопки кодов
ШРИФТ
Arial
Times
Courier
Impact
Geneva
Optima
РАЗМЕР
Малый
Большой
Огромный
ЦВЕТ
Черный
Синий
Красный
Фиолетовый
Оранжевый
Жёлтый
Серый
Зелёный
CODEDelphi / PascalC / C++C++ BuilderVisual BasicC#AssemblerTurbo AssemblerAssembler 8080.RCBAT filesCONsole outputPerlTclPythonHTMLXMLPHPVB ScriptJava ScriptApache configMySQLCSS1C1C-SQLInterface DefinitionInno SetupSQLVisual Basic .NETJavaБез подсветки
Введите сообщение
Смайлы
Показать всё
· Помощь по кодам форума ·
Опции сообщения
Включить смайлы в этом сообщении?
Подписаться на уведомление по этой теме?
[ Script Execution time: 0.2874 ] [ 23 queries used ] [ Generated: 26.04.08, 21:04 ]
Powered by Invision Power Board(U) v1.2 © 2003 IPS, Inc.
разделы
толщиномер
охота зверь
клеить 88 люкс
покраска аэротенк
гостинницы санкт-питербурга
гнб
купить k800i
ubiquam
рак пищевод
договор суррогатный мать
бахила оптом
черный кофе
холодный обзвон
корпаративные праздник
изолента хб
бензопила dolmar
подбор эмаль
арочный конструкция
антенна
контейнерный автозаправка
выборочный лак
деловой костюм
автоподъемник
срок реализация рак
эдас-134 аденома предст.ж-зы
neri karra кожгалантерея
tag heuer
пвс
блюдо фарфор
компания сент-лючии
заказать микроавтобус
ваза 2111
цвет камуфлир
купить k800i
купля производственный комплекс
кристофер брэнд
антигололедные реагент
стеклянный перегородка
установка hotbird
summer кухонный
tag heuer
холодильник норд
фасадный покрытие
гиря торговый калибровочный
сервис альфа лаваль
бюро похоронный услуга
зеркало вагинальный
асбест а7-450
измеритель фаза нуль
sikkens краска
выделенка
вышитый герб
купить нипель
комплексный сайт
электросчетчик сэт
кофе колониальный товар
купить fifa 2006
ленинградский вокзал билет
гипсокартон
проведение анкетирование
беседка
искать фотограф
фарфор portofino
стелаж
штукатурка фасадный
плазменный панель настенный
универсам красный площадь
5440.15 (крышка)
уничтожитель
туба машина
витрина мороженый
аэрография
сборщик долг
передвижной сварочный агрегат
крот-95
asus p505
антенна бустер
флюрисцентная краска
contiwinterviking купить
дренаж
телефонный обзвон
квн съемка
силикон
спб доставка
fag
отчетность пбоюл
многотарифные электросчетчик
диспорт
изготовление краска
кожгалантерея
доставка хим. реагент
зал аэробика
варочный поверхность hansa
бейсболки заказ
время архангельск
бюро похоронный услуга
o2 optix
гайковерт
природа охота
гайковерт
вечерний платье
футбольный тотализатор
рассылка адрес
циклон цол
растворитель
листогибы
адресный база данный
измеритель фаза нуль
встраиваемый вытяжка
автобетононасосы
лак краска
время кострома
экг сервис
катушка контактор
купить архиватор
лак эмаль
маршрутизатор
купить блендер
редизайн кострома
красный площадь собор
эрозия шейка матка
гнб
сдача ielts
кулер
купить блендер
длинный нард
центр проктология
дезинфекция белье
покраска рчв
папиллома
ваза 2112
изолента
билет мхат
заказать обед
инвертор
лак краска
цвет гармония