Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Colorimétrie : convertisseur TSL vers RVB Mar 10 Mai 2022 - 10:45 | |
| Bonjour à tous ! Complémentaire au convertisseur RVB vers TSL décrit > ICI <, voici la fonction inverse, TSL vers RVB.Le sous-programme tsl2rvb prend en paramètres les valeurs : - la Teinte dans un intervalle [0,359] ; - la Saturation [0,100] ; - la Luminosité [0,100]. Les valeurs RVB calculées sont des entiers déclarés en tant que variables globales. - Code:
-
' TSL vers RVB (HSL to RGB) ' Marc - Mai 2022 ' Ecrit en langage Panoramic
dim r%,v%,b% dim teinte,saturation,luminosite
caption 0,"TSL vers RVB (HSL to RGB)"
teinte = 193 :' teinte [0,360] saturation = 74.5 :' saturation [0,100%] luminosite = 58 :' luminosite [0,100%]
tsl2rvb(teinte,saturation,luminosite)
print " Teinte = " + str$(teinte) + "°" print " Saturation = " + str$(saturation) + "%" print " Luminosite = " + str$(luminosite) + "%" print print " R,V,B = " + str$(r%) + "," + str$(v%) + "," + str$(b%)
end
' ------------------------------------------------------------------------------ sub tsl2rvb(t1,s1,l1) dim_local var1,var2
t1 = t1 / 360 s1 = s1 / 100 l1 = l1 / 100 if s1 = 0 r% = int(l1*255) v% = int(l1*255) b% = int(l1*255) else if (l1 < 0.5) var2 = l1 * (1 + s1) else var2 = (l1 + s1) - (s1 * l1) end_if var1 = 2 * l1 - var2
r% = 255 * teinteRVB(var1,var2,t1 + (1/3)) v% = 255 * teinteRVB(var1,var2,t1 ) b% = 255 * teinteRVB(var1,var2,t1 - (1/3)) end_If end_sub ' ------------------------------------------------------------------------------ fnc teinteRVB(v1,v2,vH) if vH < 0 then vH = vH + 1 if vH > 1 then vH = vH - 1 if 6 * vH < 1 then result (v1 + (v2 - v1) * 6 * vH) : exit_fnc if 2 * vH < 1 then result (v2 ) : exit_fnc if 3 * vH < 2 then result (v1 + (v2 - v1) * ((2/3) - vH) * 6) : exit_fnc result v1 end_fnc ' ------------------------------------------------------------------------------
A bientôt ! Récapitulatif des articles concernant les convertisseurs colorimétriques: RVB vers TSL : https://panoramic.1fr1.net/t6749-colorimetrie-convertisseur-rvb-vers-tslTSL vers RVB : https://panoramic.1fr1.net/t6755-colorimetrie-convertisseur-tsl-vers-rvbRVB vers TSV : https://panoramic.1fr1.net/t6754-colorimetrie-convertisseur-rvb-vers-tsv TSV vers RVB : https://panoramic.1fr1.net/t6756-colorimetrie-convertisseur-tsv-vers-rvb | |
|