Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2009 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
include_spip('inc/filtres_images_lib_mini');
/**
* Toutes les fonctions couleur_xx de ce fichier :
* - prennent une couleur hexa sur 6 caracteres en entree (les couleurs web nommees sont admises aussi)
* - fournissent une couleur hexa en sortie
* - sont chainables les unes derrieres les autres dans toutes les combinaisons possibles
*/
// http://doc.spip.org/@couleur_web
function couleur_web($couleur) {
include_spip('filtres/images_lib');
$rvb = _couleur_hex_to_dec($couleur);
$rvb = array_map('multiple_de_trois',$rvb);
return _couleur_dec_to_hex($rvb['red'],$rvb['green'],$rvb['blue']);
}
// http://doc.spip.org/@couleur_4096
function couleur_4096($couleur) {
$r = (substr($couleur, 0, 1));
$v = (substr($couleur, 2, 1));
$b = (substr($couleur, 4, 1));
return "$r$r$v$v$b$b";
}
// http://doc.spip.org/@couleur_extreme
function couleur_extreme ($couleur, $limite=0.5) {
// force la couleur au noir ou au blanc le plus proche
// -> donc couleur foncee devient noire
// et couleur claire devient blanche
// -> la limite est une valeur de 0 a 255, permettant de regler le point limite entre le passage noir ou blanc
$couleurs = _couleur_hex_to_dec($couleur);
$red = $couleurs["red"];
$green = $couleurs["green"];
$blue = $couleurs["blue"];
/*
$moyenne = round(($red+$green+$blue)/3);
if ($moyenne > $limite) $couleur_texte = "ffffff";
else $couleur_texte = "000000";
*/
include_spip('filtres/images_lib');
$hsl = _couleur_rgb2hsl ($red, $green, $blue);
if ($hsl["l"] > $limite) $couleur_texte = "ffffff";
else $couleur_texte = "000000";
return $couleur_texte;
}
// http://doc.spip.org/@couleur_inverser
function couleur_inverser ($couleur) {
$couleurs = _couleur_hex_to_dec($couleur);
$red = 255 - $couleurs["red"];
$green = 255 - $couleurs["green"];
$blue = 255 - $couleurs["blue"];
$couleur = _couleur_dec_to_hex($red, $green, $blue);
return $couleur;
}
// http://doc.spip.org/@couleur_foncer_si_claire
function couleur_foncer_si_claire ($couleur) {
// ne foncer que les couleurs claires
// utile pour ecrire sur fond blanc,
// mais sans changer quand la couleur est deja foncee
$couleurs = _couleur_hex_to_dec($couleur);
$red = $couleurs["red"];
$green = $couleurs["green"];
$blue = $couleurs["blue"];
$moyenne = round(($red+$green+$blue)/3);
if ($moyenne > 122) return couleur_foncer($couleur);
else return $couleur;
}
// http://doc.spip.org/@couleur_eclaircir_si_foncee
function couleur_eclaircir_si_foncee ($couleur) {
$couleurs = _couleur_hex_to_dec($couleur);
$red = $couleurs["red"];
$green = $couleurs["green"];
$blue = $couleurs["blue"];
$moyenne = round(($red+$green+$blue)/3);
if ($moyenne < 123) return couleur_eclaircir($couleur);
else return $couleur;
}
// http://doc.spip.org/@couleur_saturation
function couleur_saturation($couleur, $val) {
if ($couleur == "ffffff") $couleur = "eeeeee";
$couleurs = _couleur_hex_to_dec($couleur);
$r= 255 - $couleurs["red"];
$g= 255 - $couleurs["green"];
$b= 255 - $couleurs["blue"];
$max = max($r,$g,$b);
$r = 255 - $r / $max * 255 * $val;
$g = 255 - $g / $max * 255 * $val;
$b = 255 - $b / $max * 255 * $val;
$couleur = _couleur_dec_to_hex($r, $g, $b);
return $couleur;
}
?>