* 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 = ''.$card->title.''; } else $image = ''.$card->title.''; } 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 = ''.$card->title.''; else $image = ''.$card->title.''; } 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 = ''.$card->title.''; else $image = ''.$card->title.''; } 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 = ''.$card->title.''; else $image = ''.$card->title.''; } } return $image; } ?>