1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public static function Copie_Redimensionne_Homothetique( $NewWidth , $NewHeight , $Path , $FileName , $NewName , $Couleur = NULL )
{
$Couleur = $Couleur === NULL ? new Couleur( 255 , 255 , 255 ) : $Couleur;
// Le fichier
$filename = $FileName;
list($width, $height) = getimagesize($Path.$FileName);
$destTop = 0;
$destLeft = 0;
//Calcul du pourcentage qui permet de faire rentrer l'image completement
$percW = ($NewWidth / $width)*100;
$percH = ($NewHeight / $height)*100;
$percent = $percW < $percH ? $percW : $percH;
// Calcul des nouvelles dimensions
$new_width = ($width * $percent)/100;
$new_height = ($height * $percent)/100;
//Calcul des valeurs de centrage de l'image
if( $new_height < $NewHeight )
{
$destTop = intval(($NewHeight-$new_height)/2);
}
if( $new_width < $NewWidth )
{
$destLeft = intval(($NewWidth-$new_width)/2);
}
// Redimensionnement
$image_p = imagecreatetruecolor( $NewWidth, $NewHeight );
$colourWhite = imagecolorallocate($image_p, $Couleur->Rouge , $Couleur->Vert , $Couleur->Bleu );
imagefill ( $image_p, 0, 0, $colourWhite );
$image = imagecreatefromjpeg($Path."/".$FileName);
imagecopyresampled($image_p, $image, $destLeft, $destTop, 0, 0, $new_width, $new_height, $width, $height);
// Affichage
imagejpeg($image_p, $Path."/".$NewName , 100);
} |
Partager