Subversion Repositories Sites.tela-botanica.org

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
87 alex 1
<?php
2
 
3
 
4
//vim: set expandtab tabstop=4 shiftwidth=4:
5
// +-----------------------------------------------------------------------------------------------+
6
// | PHP version 4.0                                                                               |
7
// +-----------------------------------------------------------------------------------------------+
8
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group                                      |
9
// +-----------------------------------------------------------------------------------------------+
10
// | This source file is subject to version 2.0 of the PHP license,                                |
11
// | that is bundled with this package in the file LICENSE, and is                                 |
12
// | available at through the world-wide-web at                                                    |
13
// | http://www.php.net/license/2_02.txt.                                                          |
14
// | If you did not receive a copy of the PHP license and are unable to                            |
15
// | obtain it through the world-wide-web, please send a note to                                   |
16
// | license@php.net so we can mail you a copy immediately.                                        |
17
// +-----------------------------------------------------------------------------------------------+
18
/**
19
* Fichier regroupant toutes les fonctions manipulant les  couleurs
20
*
21
*Toutes les fonctions sur les couleurs sont disponibles dans ce fichier.
22
*
23
*@package couleur
24
//Auteur original :
25
*@author iubito <sylvain_machefert@yahoo.fr>
26
//Autres auteurs :
27
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
28
//Autres auteurs :
29
*@copyright     Tela-Botanica 2000-2003
30
*@version       25 fevrier 2003
31
// +-----------------------------------------------------------------------------------------------+
32
//
150 magali 33
// $Id: lib.couleur.php,v 1.1.1.1 2004/11/23 17:48:17 tam Exp $
87 alex 34
// FICHIER : $RCSfile: lib.couleur.php,v $
35
// AUTEUR  : $Author: tam $
150 magali 36
// VERSION : $Revision: 1.1.1.1 $
37
// DATE    : $Date: 2004/11/23 17:48:17 $
87 alex 38
//
39
// +-----------------------------------------------------------------------------------------------+
40
// A FAIRE :
41
*/
42
 
43
/**
44
//==================================== FONCTION ==================================
45
* La fonction array couleur_hexadecimalAuRgb(string color) renvoie des valeurs de couleur en RGB.
46
*
47
*Cette fonction prend une valeur de couleur codée en hexadécimal et retourne
48
*les valeurs RGB correspondantes sous forme de tableau.
49
*Exemple d'utilisation:
50
*$rgb = couleur_hexadecimalAuRgb("fffc49");
51
*echo "<br>couleur_hexadecimalAuRgb de 'fffc49' : ".$rgb['R']." ".$rgb['V']." ".$rgb['B'];
52
*
53
*@author iubito <sylvain_machefert@yahoo.fr>
54
*@copyright     iubito - http://iubito.free.fr/ - 2003
55
*
56
*@param string $couleur représente une couleur codée en héxadécimal.
57
*
58
*@return array tableau associatif contenant les 3 valeurs RGB, avec clé du rouge 'R',
59
* du vert 'V' et enfin du bleu 'B'.
60
//==============================================================================
61
*/
62
function couleur_hexadecimalAuRgb($couleur_html)
63
{
64
    //gestion du #...
65
    if (substr($couleur_html, 0, 1) == "#") {
66
        $couleur_html = substr($couleur_html, 1, 6);
67
    }
68
 
69
    $tablo_rgb['R'] = hexdec(substr($couleur_html, 0, 2));
70
    $tablo_rgb['V'] = hexdec(substr($couleur_html, 2, 2));
71
    $tablo_rgb['B'] = hexdec(substr($couleur_html, 4, 2));
72
 
73
    return $tablo_rgb;
74
}
75
 
76
 
77
/**
78
//==================================== FONCTION ==================================
79
* La fonction string couleur_rgbAuHexadecimal(array tablo) renvoie la valeur d'une
80
*couleur en héxadécimal.
81
*
82
*Cette fonction prend un tableau de valeurs d'une couleur codées en RGB et retourne
83
*la valeur hexadécimal correspondante sous forme de chaîne.
84
*C'est la réciproque exacte de la fonction couleur_hexadecimalAuRgb.
85
*
86
*@author iubito <sylvain_machefert@yahoo.fr>
87
*@copyright     iubito - http://iubito.free.fr/ - 2003
88
*
89
*@param array $tablo_RGB représente un tableau associatif avec les valeurs RGB
90
*d'une couleur.Les trois clés du tableau sont : R pour rouge, V pour vert et B pour bleu.
91
*
92
*@return string chaîne contenant la valeur de la couleur sous forme héxadécimale.
93
//==============================================================================
94
*/
95
function couleur_rgbAuHexadecimal($tablo_rgb)
96
{
97
    //Vérification des bornes...
98
    foreach($tablo_rgb as $cle => $valeur) {
99
        $tablo_rgb[$cle] = bornes($tablo_rgb[$cle],0,255);
100
    }
101
    //Le str_pad permet de remplir avec des 0
102
    //parce que sinon couleur_rgbAuHexadecimal(array(0,255,255)) retournerai #0ffff<=manque un 0 !
103
    return "#".str_pad(dechex(($tablo_rgb['R']<<16)|($tablo_rgb['V']<<8)|$tablo_rgb['B']),6,"0",STR_PAD_LEFT);
104
}
105
 
106
/**
107
//==================================== FONCTION ==================================
108
* La fonction int couleur_bornerNbre(int nb, int min, int max) borne des nombres.
109
*
110
*Cette fonction permet de borner la valeur d'un nombre entre un minimum $mini et
111
*un maximum $maxi.
112
*
113
*@author iubito <sylvain_machefert@yahoo.fr>
114
*@copyright     iubito - http://iubito.free.fr/ - 2003
115
*
116
*@param integer $nbre le nombre à borner.
117
*@param integer $mini la borne minimum.
118
*@param integer $maxi la borne maximum.
119
*
120
*@return integer le nombre limité aux bornes si nécessaire.
121
//==============================================================================
122
*/
123
function couleur_bornerNbre($nbre, $mini, $maxi)
124
{
125
    if ($nbre < $mini) {
126
        $nbre = $mini;
127
    }
128
 
129
    if ($nbre > $maxi) {
130
        $nbre = $maxi;
131
    }
132
 
133
    return $nbre;
134
}
135
 
136
?>