Reduction d'une image à l'écran par rapport à une taille maxi

Contenu du snippet

Renvoi une chaine contenant le lien et les dimensions d'une image en fonction de valeurs maximales et en gardant les proportions.
Si l'image n'existe pas elle est remplacée par une image de substitution (facultatif).

Pratique pour que des photos rentrent toujours dans un cadre sans le déformer et sans déformer l'image.

Source / Exemple :


<?PHP
function TailleImage($LienImage, $LargeurMax, $HauteurMax, $ImageRemplacement=''){
// Renvoi une chaine contenant le lien et les dimensions d'une image
// en fonction de valeurs maximales et en gardant les proportions.
// Si l'image n'existe pas elle est remplacée par $ImageRemplacement (facultatif)
// Exemple :
//    $Image=TailleImage("Image.jpg", 300, 200, "Logo.jpg");
//    echo "<Img $Image>";

  $Size = @getimagesize($LienImage);
  if (!empty($Size[0]) and !empty($Size[1])){
    $RapportImage = $Size[1] / $Size[0];
    $RapportZone  = $HauteurMax / $LargeurMax;

    if ($RapportImage < $RapportZone){
      $Largeur = $LargeurMax;
      $Hauteur = round($LargeurMax * $RapportImage);
    }
    else{
      $Hauteur = $HauteurMax;
      $Largeur = round($HauteurMax / $RapportImage);
    }

    $Chaine= (!empty($Largeur) and !empty($Hauteur)) ? 'Src="'.$LienImage.'" Width="'.$Largeur.'" Height="'.$Hauteur.'"' : 'Src="'.$LienImage.'" Width="'.$LargeurMax.'" Height="'.$HauteurMax.'"';
  }
  else
    $Chaine='Src="'.$ImageRemplacement.'" Width="'.$LargeurMax.'" Height="'.$HauteurMax.'"';

  return $Chaine;
}

// Exemple : 
$Image = TailleImage("Image.jpg", 300, 200, "Logo.jpg");
echo "<Img ".$Image.">";
?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.