Retourner au contenu associé (entrée de forum : changement d'espace de couleur)
Posté par . Takhi le 14 septembre 2004 à 13:29. En réponse au message changement d'espace de couleur. Évalué à 1.
/ JScript source code //Red : 0..255 //Green : 0..255 //Blue : 0..255 //Hue : 0,0..360,0<=>0..255 //Lum : 0,0..1,0<=>0..255 //Sat : 0,0..1,0<=>0..255 //Retourne un tableau de 3 valeurs : H,S,L function RGB2HSL (r, g, b) { red = Math.round (r); green = Math.round (g); blue = Math.round (b); var minval = Math.min (red, Math.min (green, blue)); var maxval = Math.max (red, Math.max (green, blue)); var mdiff = maxval - minval + 0.0; var msum = maxval + minval + 0.0; var luminance = msum / 510.0; var saturation; var hue; if (maxval == minval) { saturation = 0.0; hue = 0.0; } else { var rnorm = (maxval - red) / mdiff; var gnorm = (maxval - green) / mdiff; var bnorm = (maxval - blue) / mdiff; saturation = (luminance <= 0.5) ? (mdiff / msum) : (mdiff / (510.0 - msum)); if (red == maxval) hue = 60.0 * (6.0 + bnorm - gnorm); if (green == maxval) hue = 60.0 * (2.0 + rnorm - bnorm); if (blue == maxval) hue = 60.0 * (4.0 + gnorm - rnorm); if (hue > 360.0) hue -= 360.0; } return new Array (Math.round (hue * 255.0 / 360.0), Math.round (saturation * 255.0), Math.round (luminance * 255.0)); } function Magic (rm1, rm2, rh) { var retval = rm1; if (rh > 360.0) rh -= 360.0; if (rh < 0.0) rh += 360.0; if (rh < 60.0) retval = rm1 + (rm2 - rm1) * rh / 60.0; else if (rh < 180.0) retval = rm2; else if (rh < 240.0) retval = rm1 + (rm2 - rm1) * (240.0 - rh) / 60.0; return Math.round (retval * 255); } //Retourne un tableau de 3 valeurs : R,G,B function HSL2RGB (h, s, l) { var hue = h * 360.0 / 255.0; var saturation = s / 255.0; var luminance = l / 255.0; var red; var green; var blue; if (saturation == 0.0) { red = green = blue = Math.round (luminance * 255.0); } else { var rm1; var rm2; if (luminance <= 0.5) rm2 = luminance + luminance * saturation; else rm2 = luminance + saturation - luminance * saturation; rm1 = 2.0 * luminance - rm2; red = Magic (rm1, rm2, hue + 120.0); green = Magic (rm1, rm2, hue); blue = Magic (rm1, rm2, hue - 120.0); } return new Array (red, green, blue); }
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# en javascript?
Posté par . Takhi . En réponse au message changement d'espace de couleur. Évalué à 1.
en cherchant rgb2hsl via mon ami google :)