цвет гармония

Смешивание цветов -> Форум на Исходниках.Ру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.разделы дефектоскопия сварной швов предохранитель пкн протеин проект электропроводка лечение головокружение инженерный геодезия купить конвертер обзвон иностранный долг корпоративный иностранный мачта флагшток прайс сушильный машина легранд классический аэробика отпуск конец торговый витрина lida фосфорицирующая краска крановый тележка сухой мороженый светодиодный экран комплексный сайт паркетный лак доставка окон девелоперская компания асбест хризотиловый kiev apartments service срок реализация рак этнический психология купить отвед покрышка бриджстоун квн съемка электроинструмент metabo стимулирующий лотерея учиться танго профиль salamander агат кристи билет перевод денег tag heuer съемный зубной протез нард короткий врач-гинеколог диагностический стенд катетер цвет ламината класс 32 купить конвертер фарфор portofino трансперсональный психология любимый цвет дирижабль цвет гармония