hsb to rgb

Door Lasse , 20 jaar geleden, 5.258x bekeken

Deze functie zet kleuren gedefineerd in het hsb/hsv (Hue, Saturation, Brightness/Value) kleurenspectrum om naar de equivalente kleurdefenitie in het rgb (Red, Green, Blue) kleurenspectrum. Dit kan handig zijn omdat het hsb kleurenspectrum voor de mens veel intuïtiever is dan het rgb kleurenspectrum, terwijl een computer juist gebruik maakt van rgb.

Zie Wikipedia voor meer informatie over hsb/hsv en rgb.

Deze functie accepteert eenvoudigweg de argumenten $hue, $saturation en $brightness. $hue loopt van 0 tot 360 en $saturation en $brightness van 0 tot 100. Alle argumenten mogen integers of floats zijn.

De functie geeft een array met de elementen 'red', 'green' en 'blue' hebben. Daarin staat de respectivelijke waarde van 0 tot 255. Dit zijn integers.

De functie significantRound() die is bijgevoegd is nodig voor het netjes afronden van de floats die zijn doorgegeven. Als die niet zouden worden afgerond loop je de kans op fouten (zoals hier beschreven in het rode waarschuwingsvak).

Gesponsorde koppelingen

PHP script bestanden

  1. hsb-to-rgb

 

Er zijn 8 reacties op 'Hsb to rgb'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


20 jaar geleden
 
0 +1 -0 -1
Leuk alleen ik mis iets? Terugrekenen? Tuurlijk kun je het nu makkelijk zelf make met het script maar imo hoort het er gewoon standaard nu bij te zitten
Lasse
Lasse
20 jaar geleden
 
0 +1 -0 -1
@Wouser: Dit kan er inderdaad bij, maar over het algemeen is het niet zo interessant, aangezien ik geen idee heb waarvoor ik het zou moeten gebruiken, behalve bijvoorbeeld voor een kleurenwiel.

Overgins is het niet gemakkelijk om een terugberekening te maken aan de hand van dit script. De formule daarvan is toch wel even anders.

Als er meer mensen interesse hebben in een rgbToHsb() functie wil ik hem er wel bij maken.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
Ja idd, om hem compleet te maken heb je best ook de omgekeerde bewerking nodig he.

Is beetje als encryptie systeem te maken zonder decryptor..
Lasse
Lasse
20 jaar geleden
 
0 +1 -0 -1
mhmz, oke, ik zal hem er een keer bij maken...
Han eev
Han eev
20 jaar geleden
 
0 +1 -0 -1
Even opmerking, waarom gebruik je LengthException ipv InvalidArgumentException? Die is toch veel meer voor de hand liggend?
Lasse
Lasse
20 jaar geleden
 
0 +1 -0 -1
Dat is omdat LengthException moet worden gegooid als de parameter wel het goede type heeft, maar het type voldoet verder niet aan goede criteria. InvalidArgumentException moet worden gegooid als de parameter van het verkeerde type is.

Als je goed kijkt zie je dat ik ieder argument van hsbToRgb() door de functie significantRound() trek. Daar wordt gecheckt of parameter $number wel een integer of float is. Is dat niet zo, dan wordt er een InvalidParameter gegooid. Het heeft weinig nut om die check ook nog eens in hsbToRgb() uit te voeren omdat je dan eigenlijk een dubbele check hebt.

Vervolgens wordt in de functie hsbToRgb() elke parameter ook nog eens gecontroleerd op of hij wel binnen de juiste range zit. Is dit niet zo, dan wordt er een LengtException gegooid.
Douwe
Douwe
20 jaar geleden
 
0 +1 -0 -1
Leuk scriptje! Maar even mierenneuken:
Argument $precision mus be a integer.
Moet zijn
Argument $precision must be an integer.
;)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Lasse
Lasse
20 jaar geleden
 
0 +1 -0 -1
@Douwe M: Aangepast

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. hsb-to-rgb

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.