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