ADD informations concernant les jours pendant lesquels les participants sont présent...
[cl7.git] / fonc_images.php
1 <?php
2 #Copyright (C) 2002 Grégory Burri, this software is under GNU GPL see the index.php file for more informations
3
4 /*--------------------------------------------------
5 auteur : Pifou
6 date : 24.03.2002
7
8 gestion d'image, en particulier de redimensionnage
9 ---------------------------------------------------*/
10
11 /*--------------------------------------------------
12 auteur : pifou
13 date : 24.03.2002
14
15 redimensionne une image pour qu'elle tienne dans un carré
16 de $dim de coté et l'enregistre dans le repertoire $nouveau_chemin
17 $nouveau_chemin contient le nom de l'image : '/tmp/apercu_image.jpg'
18 renvois 0 si il n'y a pas besoin de la redimensionner.
19 $force_rewrite_redim peut prendre 3 valeur =>
20 * 0 : si l'image de sortie existe deja alors ne fait rien (renvois 1)
21 * 1 : si l'image de sortie existe deha et qu'elle a la meme taille alors ne fait rien
22 * 2 : crée de toutes manières l'image de sortie
23 ---------------------------------------------------*/
24 function image_redim ($image_chemin, $dim, $nouveau_chemin, $qualite = 60, $force_rewrite_redim=0)
25 {
26 $image = ImageCreateFromJpeg($image_chemin);
27
28 $hauteur = imageSY($image);
29 $largeur = imageSX($image);
30
31 if ($hauteur >= $largeur && $hauteur > $dim)
32 $rapport = $dim/$hauteur;
33 else if($largeur > $hauteur && $largeur > $dim)
34 $rapport = $dim/$largeur;
35 else return 0;
36
37 $new_hauteur = round($hauteur * $rapport);
38 $new_largeur = round($largeur * $rapport);
39
40 #si le fichier ne doit pas etre recree si il existe deja
41 if ($force_rewrite_redim==0)
42 {
43 #si le fichier existe deja alors ne fait rien
44 if (file_exists($nouveau_chemin)) return 1;
45 }
46 else if ($force_rewrite_redim==1)
47 {
48 if (file_exists($nouveau_chemin))
49 {
50 $image_existe = ImageCreateFromJpeg($nouveau_chemin);
51 if (imageSY($image_existe) == $new_hauteur && imageSX($image_existe) == $new_largeur) return 1;
52 }
53 }
54
55
56
57 ##gd 2.0 :
58 $image_redim = imagecreatetruecolor($new_largeur, $new_hauteur); #l'apercu de l'image (plus petite)
59 imagecopyresampled($image_redim, $image, 0, 0, 0, 0, $new_largeur, $new_hauteur, $largeur, $hauteur);
60 ##
61
62
63 imagejpeg($image_redim, $nouveau_chemin, $qualite); #ecrit l'apercu sur le disque
64
65 return 1;
66
67 }
68
69 /*--------------------------------------------------
70 auteur : pifou
71 date : 25.01.2003
72
73 Renvois le lien html vers l'image redimensionnée ou l'image
74 'no_image.jpg'
75 ---------------------------------------------------*/
76 function image_lien_html($card)
77 {
78 global $glob;
79 $settings = $glob->get('settings');
80 $link = $glob->get('link');
81
82 #si le fichier image n'existe pas
83 if (!file_exists($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg'))
84 {
85 $fichier_image = fopen($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg', 'wb');
86 if ($card->image!='') fwrite($fichier_image, $card->image);
87 fclose($fichier_image);
88 }
89 else #sinon essais de le lire
90 {
91 #test la validité de l'image (il faudrait trouver une autre manière plus élégante)
92 if(!@getimagesize($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg'))
93 {
94 #si l'image n'est pas valide (en tant que jpeg) alors l'efface de la BD
95 mysql_query("update movie set image = '' where id = ".$card->id, $glob->get('_the_db_'));
96 unlink($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg');
97 }
98 }
99
100 $skin_no_image = false;
101 $current_skin_path = $link->path().DIR_SKINS.'/'.$settings->get('current_skin');
102 #si le film n'a pas d'image'
103 if ($card->image=='')
104 {
105 #si le skin à une image 'no_image.jpg'
106 if (file_exists($current_skin_path .'/no_image.jpg'))
107 {
108 $image_path = $current_skin_path .'/no_image.jpg';
109 $skin_no_image = true;
110 }
111 else
112 $image_path = $link->path().'DivXDB/images/no_image.jpg';
113 }
114 else #le film a une image
115 $image_path = $link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg';
116
117 #si la library GD n'est pas installée
118 if ($settings->get('gd_library')=='0')
119 {
120
121 $size = getimagesize($image_path);
122 $largeur = $size[0];
123 $hauteur = $size[1];
124
125 if ($hauteur >= $largeur && $hauteur > $settings->get('size_image'))
126 $rapport = $settings->get('size_image')/$hauteur;
127 else if($largeur > $hauteur && $largeur > $settings->get('size_image'))
128 $rapport = $settings->get('size_image')/$largeur;
129 else $rapport = 1;
130
131 $new_hauteur = round($hauteur * $rapport);
132 $new_largeur = round($largeur * $rapport);
133
134 #si le film n'a pas d'image
135 if ($card->image=='')
136 {
137 #$no_image = $settings
138 $image = '<img alt="'.$card->title.'" border="0" width="'.$new_largeur.'" height="'.$new_hauteur.'" src="'.$image_path.'"/>';
139 }
140 else $image = '<a target="_blank" href="'.$image_path.'"><img alt="'.$card->title.'" border="0" width="'.$new_largeur.'" height="'.$new_hauteur.'" src="'.$image_path.'"/></a>';
141 }
142 else
143 {
144 if ($skin_no_image) #si le film n'a pas d'image et que le skin a une 'no_image.jpg'
145 {
146 if (image_redim__($image_path, $settings->get('size_image'), $current_skin_path .'/'.SMALL_IMAGE_SUFIX.'no_image.jpg', 60, 1)==0)
147 $image = '<img alt="'.$card->title.'" src="'.$image_path.'"/>';
148 else
149 $image = '<img alt="'.$card->title.'" src="'.$current_skin_path .'/'.SMALL_IMAGE_SUFIX.'no_image.jpg'.'"/>';
150 }
151 elseif($card->image=='')
152 {
153 if (image_redim__($image_path, $settings->get('size_image'), $link->path().'DivXDB/images/image_tmp/'.SMALL_IMAGE_SUFIX.'no_image.jpg', 60, 1)==0)
154 $image = '<img alt="'.$card->title.'" src="'.$image_path.'"/>';
155 else
156 $image = '<img alt="'.$card->title.'" src="'.$link->path().'DivXDB/images/image_tmp/'.SMALL_IMAGE_SUFIX.'no_image.jpg"/>';
157 }
158 else
159 {
160 if(image_redim__($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg', $settings->get('size_image'), $link->path().'DivXDB/images/image_tmp/'.SMALL_IMAGE_SUFIX.$card->id.'.jpg', 60, 1)==0)
161 $image = '<img alt="'.$card->title.'" src="'.$link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg"/>';
162 else
163 $image = '<a target="_blank" href="'.$link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg"><img alt="'.$card->title.'" border="0" src="'.$link->path().'DivXDB/images/image_tmp/'.SMALL_IMAGE_SUFIX.$card->id.'.jpg"/></a>';
164
165 }
166 }
167 return $image;
168 }
169 ?>