--- /dev/null
+<?php
+#Copyright (C) 2002 Grégory Burri, this software is under GNU GPL see the index.php file for more informations
+
+/*--------------------------------------------------
+auteur : Pifou
+date : 24.03.2002
+
+gestion d'image, en particulier de redimensionnage
+---------------------------------------------------*/
+
+/*--------------------------------------------------
+auteur : pifou
+date : 24.03.2002
+
+redimensionne une image pour qu'elle tienne dans un carré
+de $dim de coté et l'enregistre dans le repertoire $nouveau_chemin
+$nouveau_chemin contient le nom de l'image : '/tmp/apercu_image.jpg'
+renvois 0 si il n'y a pas besoin de la redimensionner.
+$force_rewrite_redim peut prendre 3 valeur =>
+* 0 : si l'image de sortie existe deja alors ne fait rien (renvois 1)
+* 1 : si l'image de sortie existe deha et qu'elle a la meme taille alors ne fait rien
+* 2 : crée de toutes manières l'image de sortie
+---------------------------------------------------*/
+function image_redim ($image_chemin, $dim, $nouveau_chemin, $qualite = 60, $force_rewrite_redim=0)
+{
+ $image = ImageCreateFromJpeg($image_chemin);
+
+ $hauteur = imageSY($image);
+ $largeur = imageSX($image);
+
+ if ($hauteur >= $largeur && $hauteur > $dim)
+ $rapport = $dim/$hauteur;
+ else if($largeur > $hauteur && $largeur > $dim)
+ $rapport = $dim/$largeur;
+ else return 0;
+
+ $new_hauteur = round($hauteur * $rapport);
+ $new_largeur = round($largeur * $rapport);
+
+ #si le fichier ne doit pas etre recree si il existe deja
+ if ($force_rewrite_redim==0)
+ {
+ #si le fichier existe deja alors ne fait rien
+ if (file_exists($nouveau_chemin)) return 1;
+ }
+ else if ($force_rewrite_redim==1)
+ {
+ if (file_exists($nouveau_chemin))
+ {
+ $image_existe = ImageCreateFromJpeg($nouveau_chemin);
+ if (imageSY($image_existe) == $new_hauteur && imageSX($image_existe) == $new_largeur) return 1;
+ }
+ }
+
+
+
+ ##gd 2.0 :
+ $image_redim = imagecreatetruecolor($new_largeur, $new_hauteur); #l'apercu de l'image (plus petite)
+ imagecopyresampled($image_redim, $image, 0, 0, 0, 0, $new_largeur, $new_hauteur, $largeur, $hauteur);
+ ##
+
+
+ imagejpeg($image_redim, $nouveau_chemin, $qualite); #ecrit l'apercu sur le disque
+
+ return 1;
+
+}
+
+/*--------------------------------------------------
+auteur : pifou
+date : 25.01.2003
+
+Renvois le lien html vers l'image redimensionnée ou l'image
+'no_image.jpg'
+---------------------------------------------------*/
+function image_lien_html($card)
+{
+ global $glob;
+ $settings = $glob->get('settings');
+ $link = $glob->get('link');
+
+ #si le fichier image n'existe pas
+ if (!file_exists($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg'))
+ {
+ $fichier_image = fopen($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg', 'wb');
+ if ($card->image!='') fwrite($fichier_image, $card->image);
+ fclose($fichier_image);
+ }
+ else #sinon essais de le lire
+ {
+ #test la validité de l'image (il faudrait trouver une autre manière plus élégante)
+ if(!@getimagesize($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg'))
+ {
+ #si l'image n'est pas valide (en tant que jpeg) alors l'efface de la BD
+ mysql_query("update movie set image = '' where id = ".$card->id, $glob->get('_the_db_'));
+ unlink($link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg');
+ }
+ }
+
+ $skin_no_image = false;
+ $current_skin_path = $link->path().DIR_SKINS.'/'.$settings->get('current_skin');
+ #si le film n'a pas d'image'
+ if ($card->image=='')
+ {
+ #si le skin à une image 'no_image.jpg'
+ if (file_exists($current_skin_path .'/no_image.jpg'))
+ {
+ $image_path = $current_skin_path .'/no_image.jpg';
+ $skin_no_image = true;
+ }
+ else
+ $image_path = $link->path().'DivXDB/images/no_image.jpg';
+ }
+ else #le film a une image
+ $image_path = $link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg';
+
+ #si la library GD n'est pas installée
+ if ($settings->get('gd_library')=='0')
+ {
+
+ $size = getimagesize($image_path);
+ $largeur = $size[0];
+ $hauteur = $size[1];
+
+ if ($hauteur >= $largeur && $hauteur > $settings->get('size_image'))
+ $rapport = $settings->get('size_image')/$hauteur;
+ else if($largeur > $hauteur && $largeur > $settings->get('size_image'))
+ $rapport = $settings->get('size_image')/$largeur;
+ else $rapport = 1;
+
+ $new_hauteur = round($hauteur * $rapport);
+ $new_largeur = round($largeur * $rapport);
+
+ #si le film n'a pas d'image
+ if ($card->image=='')
+ {
+ #$no_image = $settings
+ $image = '<img alt="'.$card->title.'" border="0" width="'.$new_largeur.'" height="'.$new_hauteur.'" src="'.$image_path.'"/>';
+ }
+ else $image = '<a target="_blank" href="'.$image_path.'"><img alt="'.$card->title.'" border="0" width="'.$new_largeur.'" height="'.$new_hauteur.'" src="'.$image_path.'"/></a>';
+ }
+ else
+ {
+ if ($skin_no_image) #si le film n'a pas d'image et que le skin a une 'no_image.jpg'
+ {
+ if (image_redim__($image_path, $settings->get('size_image'), $current_skin_path .'/'.SMALL_IMAGE_SUFIX.'no_image.jpg', 60, 1)==0)
+ $image = '<img alt="'.$card->title.'" src="'.$image_path.'"/>';
+ else
+ $image = '<img alt="'.$card->title.'" src="'.$current_skin_path .'/'.SMALL_IMAGE_SUFIX.'no_image.jpg'.'"/>';
+ }
+ elseif($card->image=='')
+ {
+ if (image_redim__($image_path, $settings->get('size_image'), $link->path().'DivXDB/images/image_tmp/'.SMALL_IMAGE_SUFIX.'no_image.jpg', 60, 1)==0)
+ $image = '<img alt="'.$card->title.'" src="'.$image_path.'"/>';
+ else
+ $image = '<img alt="'.$card->title.'" src="'.$link->path().'DivXDB/images/image_tmp/'.SMALL_IMAGE_SUFIX.'no_image.jpg"/>';
+ }
+ else
+ {
+ 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)
+ $image = '<img alt="'.$card->title.'" src="'.$link->path().'DivXDB/images/image_tmp/'.$card->id.'.jpg"/>';
+ else
+ $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>';
+
+ }
+ }
+ return $image;
+}
+?>