Calcul de couleurs tsv

Soyez le premier à donner votre avis sur cette source.

Vue 3 836 fois - Téléchargée 159 fois

Description

Cette fonction permet de transformer les "coordonnées de couleurs" TSV (teinte,saturation,luminosité) en coordonnées RVB (le longword des couleurs VB)

Dans le fichier ZIP ya un exemple de projet mais c'est vraiment du pré-alpha 0.00! Juste pour moi à l'origine. Le bouton sert à afficher le comdlg de couleur pour pouvoir comparer.

Le tracé des couleurs est long parce qu'il y a un DoEvents à chaque colonne dessinée.

Source / Exemple :


Function tsv(teinte, saturation, valeur)
t = teinte
s = saturation
l = valeur
t = t Mod 240
r = 0
v = 0
b = 0
If t <= 40 Then r = 255: b = 0: v = 255 * t / 40
If t > 40 And t <= 80 Then b = 0: v = 255: r = (-255 * t / 40) + 510
If t > 80 And t <= 120 Then v = 255: b = (255 * t / 40) - 510: r = 0
If t > 120 And t <= 160 Then b = 255: v = (-255 * t / 40) + 1020: r = 0
If t > 160 And t <= 200 Then b = 255: r = (255 * t / 40) - 1020: v = 0
If t > 200 And t <= 240 Then r = 255: v = 0: b = (-255 * t / 40) + 1530
r = 159 + (s * (r - 159)) / 255
v = 159 + (s * (v - 159)) / 255
b = 159 + (s * (b - 159)) / 255
If l > 128 Then
    r = r + ((l - 128) * (255 - r)) / 128
    v = v + ((l - 128) * (255 - v)) / 128
    b = b + ((l - 128) * (255 - b)) / 128
Else
    r = (l * r) / 128
    v = (l * v) / 128
    b = (l * b) / 128
End If
r = Int(r)
v = Int(v)
b = Int(b)
tsv = RGB(r, v, b)
End Function

Conclusion :


J'espère que ce sera utile à quelqu'un!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
vlad2i
Messages postés
285
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
13 février 2005

6 avril 2004 à 16:17
rhoooooooo

Pas content le vlad

Déja 1. C'est pas TSV (teinte saturation valeur) Mais HSL ou TSL (Teinte Saturation Luminosité) ensuite 2. Le code ne respecte pas les normes d'angles internationales (roue chromatique) et finalement 3. Vraiment, en dessinnant correctement, sans ton DoEvents, et avec un code un peu plus poussé, tu aurais bien un affichage instantané...

Et puis l'inverse a faire est facile.

JE VAIS TE VOUS METTRE UN VRAI CODE DE HSL MOI AVEC CONVERSIONS na !
squalyl
Messages postés
26
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
30 décembre 2003

4 avril 2002 à 13:09
Sans dec? comment ça se fait que tu l'as déja?
Regiga
Messages postés
17
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
13 octobre 2003

4 avril 2002 à 10:08
Cool... Mais c pas drole quand on la déjà ;-) ...
Rachoo
Messages postés
36
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
9 avril 2002

20 mars 2002 à 09:11
c'est pas le doevents qui fait que c'est lent
squalyl
Messages postés
26
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
30 décembre 2003

19 mars 2002 à 14:30
Largement plus dur l'inverse! G aucune id comment faire <:(
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.