Redimension intelligente d'images en PHP
2

Par Cyberdeeder, le 01/10/2007 à 15:22 - 0 commentaires

J'ai écrit cette petite fonction pour pouvoir redimensionner une image sans perdre aucun bout lors de la redimension, laissant ainsi du blanc à gauche et à droite, ou en haut et en bas :

<?php

/*
 * $source : fichier source (JPEG)
 * $dest : fichier destination (peut être le même)
 * $model_w : largeur de l'image finale
 * $model_h : hauteur de l'image finale
 */

function imagefit($source,$dest,$model_w,$model_h) {

    
$im imagecreatefromjpeg($source);
    
$dims getimagesize($source);

    
$im_logo imagecreatetruecolor($model_w,$model_h);
    
$blanc imagecolorallocate($im_logo,255,255,255);
    
imagefill($im_logo,0,0,$blanc);

    
$largeur $dims[0];
    
$hauteur $dims[1];

    if (
$largeur >= $hauteur) {

        
$ratio $largeur/$model_w;
        
$dst_w $model_w;
        
$dst_h $hauteur/$ratio;
        
$dst_x 0;
        
$dst_y = ($model_h-$dst_h)/2;

        
imagecopyresized($im_logo,$im,$dst_x,$dst_y,0,0,
                
$dst_w,$dst_h,$largeur,$hauteur);
        
imagejpeg($im_logo,$dest,100);

    } else {

        
$ratio $hauteur/$model_h;
        
$dst_w $largeur/$ratio;
        
$dst_h $model_h;
        
$dst_x 0;
        
$dst_y = ($model_w-$dst_w)/2;

        
imagecopyresized($im_logo,$im,$dst_x,$dst_y,0,0,$dst_w,
                
$dst_h,$largeur,$hauteur);
        
imagejpeg($im_logo,$dest,100);

    }

}

?>

Tags : Programmation, PHPInformatique

Ecrire un commentaire

 

Votre pseudo :
Votre site (facultatif) :
Votre e-mail (facultatif) :
Garder mes informations en mémoire
Être prévenu de nouveaux commentaires par e-mail
Être prévenu gratuitement de nouveaux commentaires par SMS