Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: hjkl 27. 03. 2014, 01:03:15

Název: Výpočet rozdílu barev
Přispěvatel: hjkl 27. 03. 2014, 01:03:15
Zdravím. Dejme tomu, že mám například barvu #289bd6 a potřebuju nějak automaticky zjistit, kterýma funkcema pro úpravu barev to mám prohnat, abych z ní dostal #289ad6. Stačí mě nějak postrčit - kód v libovolném jazyce, pseudokód, odkaz na teorii, cokoliv. Díky.
Název: Re:Rozdíl barev
Přispěvatel: fdvgdsfsda 27. 03. 2014, 07:00:35
no tak ja bych rekl, ze proste projdes vsechny data obrazku, budes nacitat obrazek pomoci nejake knihovny, ktera ti zpristupni RGB slozky kazdeho pixelu a kdyz najdes svoji hodnotu R==neco, G==neco, B==neco tak to nahradis novymi hodnotami RGB a ulozis treba jako novy soubor.
Název: Re:Rozdíl barev
Přispěvatel: 3ugeene 27. 03. 2014, 09:53:34
No, tak si tu původní barvu rozložím na RGB:

r=28 g=9b b=d6


a pak je to normální matematika, ne?

r=28 g=9b b=d6
r=28 g=9a b=d6
-------------------
r=00 g=01  b=00


tzn musíš od původní barvy odečíst jedničku v části zelené barvy?
Název: Re:Rozdíl barev
Přispěvatel: hjkl 27. 03. 2014, 09:55:44
Díky za odpověď, ale nejedná se o úpravu obrázku ani o nahrazení jedné barvy druhou. Mám návrh UI, ve kterém je hodně odstínů modré a chci přidat možnost zvolit si místo modré třeba oranžovou nebo šedou. Takže potřebuju mít jednu výchozí barvu, ze které se ostatní odstíny dopočítají. No a není mi úplně jasné jak na to, s barvami jsem ještě nějak moc nepracoval.
Název: Re:Rozdíl barev
Přispěvatel: Jirka1 27. 03. 2014, 10:11:24
Tohle nemá žádné jednoznačné řešení, je to otázka intuitivnosti rozhraní. Pro barvy se nejčastěji používá volba na základě HLS systému. Barvu definujete pomocí odstínu (hue) a dál nastavujete její jas (light) a sytost (saturation). Podívejte se třeba na výběr barvy v Gimpu, kde je použito HLS i RGB.
Název: Re:Rozdíl barev
Přispěvatel: k1k1n 27. 03. 2014, 10:13:42
pokud to chápu správně tak, že máte např. modré UI s pěti odstíny modré a chcete červené UI s pěti odstíny červené posunuté podobně, jako byly ty odstíny modré od základní modré, tak bych k tomu přistoupil jako k třírozměrnému vektoru, a jiné odstíny dělal jako kolmice k tomu původnímu modrému odstínu...
př: máš základní odstín modré - kolmý k němu je odstín červené, potom trochu jiný odstín modré a kolmý k němu bude trochu jiný odstín červené...

případně základní odstíny k sobě nemusí být kolmé, ale posunuté o jiný úhel...
Název: Re:Rozdíl barev
Přispěvatel: ... 27. 03. 2014, 11:14:25
k barevne teorii je jedna vyborna aplikace pod widle. vyberes barvy ktery uz mas a ona ti zobrazi na barvy, ktere s ni "ladi". tech metod/schemat ktere ladi je pomerne hodne a v podstate jde o matematiku - doplnky, zlomky odstinu a podobne. jen ji najit... v gui to bylo radek nadepsany jmenem schematu podle ktereho barvy k sobe ladi a pod jmenem na radku barevna policka vedle sebe. je to paradni na interierovy design, kdyz mas par kousku a vymyslis co vsechno za varianty k nim bude pasovat. ukladalo se to souboru s koncovkou cs nebo cc. takze bud color schema chooser nebo color chooser nebo tak neco.

jedno z tech mnoha schemat ma implementovany i afterstep nebo kterasi jeho knihovna asimage mozna. nejaky menu style helper nebo chooser ci jak se to jmenuje. byla to mrnava aplikacka ktera zobrazi jen vnoreny a prekryvajici obdelniky s titulkem. vyberes hlavni barvu a dopocita ostatni a pak jen cyklis na kterou cast dialogoveho okna se pouzije.

a na ten uplny zaklad uz tu informace mas. jde jen o prevody mezi barevnymi prostory a ktery prostor povazujes za "nejpouzitelnejsi" a to se dost lisi podle uzivatelskeho navyku. ono najit nejsytejsi cervenou/zelenou/modrou v HLS je skoro nadlidsky vykon. (rgb FF0000, 00FF00, 0000FF)
Název: Re:Rozdíl barev
Přispěvatel: ... 27. 03. 2014, 11:18:35
uz to mam. https://www.colorschemer.com/studio_info.php
Název: Re:Rozdíl barev
Přispěvatel: cezanne 27. 03. 2014, 11:46:46
Díky za odpověď, ale nejedná se o úpravu obrázku ani o nahrazení jedné barvy druhou. Mám návrh UI, ve kterém je hodně odstínů modré a chci přidat možnost zvolit si místo modré třeba oranžovou nebo šedou. Takže potřebuju mít jednu výchozí barvu, ze které se ostatní odstíny dopočítají. No a není mi úplně jasné jak na to, s barvami jsem ještě nějak moc nepracoval.
Je dobré vedieť, že ľudské oko nevníma farebné rozdiely lineárne. Rovnaký číselný rozdiel medzi dvoma farbami pôsobí inak pri svetlých a inak pri tmavých farbách.
Název: Re:Výpočet rozdílu barev
Přispěvatel: noef 27. 03. 2014, 15:57:47
Take mam pocit, ze ne na kazdou barevnou slozku z RGB je lidske oko stejne citlive - dalsi nelinearita.
Název: Re:Výpočet rozdílu barev
Přispěvatel: PetrP 27. 03. 2014, 19:44:48
A každé oko je nakonec jinak citlivé. Dneska jsme shodou okolností řešili problém (ne v počítači), že zákazník chce béžovou, ale ta co mu nabízíme je pro něj příliš zelená, on by ji chtěl červenější. On to vidí tu barvu jako příliš zelenou, jeden náš spolupracovník také, jiný kolega to vidí příliš červené a objektivní měření barevnosti proti předloze to také vyhodnotí, že je to moc červené. Ale on, zákazník, to vnímá jako příliš zelené a chce to přebarvit. (Celou dobu opravdu mluvím o béžové barvě)
Název: Re:Rozdíl barev
Přispěvatel: Jenda 27. 03. 2014, 22:35:08
pokud to chápu správně tak, že máte např. modré UI s pěti odstíny modré a chcete červené UI s pěti odstíny červené posunuté podobně, jako byly ty odstíny modré od základní modré, tak bych k tomu přistoupil jako k třírozměrnému vektoru, a jiné odstíny dělal jako kolmice k tomu původnímu modrému odstínu...
Počítání s vektorem se složkama (R,G,B) nejspíš dopadne dost hnusně. Převedl bych si to na nějaký prostor, kde je zvlášť barva, saturace a jas (HSV) a točil jenom s barvou.
Název: Re:Výpočet rozdílu barev
Přispěvatel: cik951 28. 03. 2014, 19:36:16
Já bych doporučil se podívat na http://colorschemedesigner.com/ (http://colorschemedesigner.com/). Petr Staníček ( aka Pixy ) vyrobil generátor barevných schémat, který určitě stojí za to aspoň vyzkoušet.