Faire des vignettes jpeg automatiques avec redimensionnement

Description

Ce script vous permettra de créer des vignettes pour des aperçu d'images en paramétrant la hauteur et la largeur, ainsi que la qualité de compression, tout en laissant l'image proportionelle .

Compatibilité :
  • Utilisation de la bibliothéque GD (toutes versions)
  • PHP 3.0.16, PHP 4 ou +


Indications pour l'utilisation de cette fonction dans votre site :

Recopiez le code si-dessous, puis mettez-le dans la page dans laquelle vous recevrez le champ image et que vous voulez la redimensionner. Si vous utilisez cette fonction dans plusieures page, mettez la dans un script à part et faites un
<?
require_once "chemin vers la page";
....

juste au début de votre page.

Voilà la fonction, ses arguments seront expliqués plus bas...

Source / Exemple :


<? 
// -----------------------------------------------------------------------
// Fonction de redimensionnement d'image
// -----------------------------------------------------------------------
function Resize($source, $destination, $width, $height, $stretch, $quality) {
// 1 - Gestion des erreurs
if (!file_exists($source)) return "Error : File not exist !";
if (!function_exists("ImageCreateFromJpeg")) return "Error : Librairie GD non instalée !";
// 2 - Lecture de l'image
$src_img=imagecreatefromjpeg($source); 
if (!$src_img) return "Erreur : Lecture impossible de l'image ".$source." !";
$w = imagesx($src_img);
$h = imagesy($src_img);
// 3 - Redimensionnement en largeur
if (!$stretch) {
    if ((($h * $width) / $w) > $height) {
        $im_w = ($w * $height) / $h;
        $im_h = $height;
    } else {
        $im_w = $width;
        $im_h = ($h * $width) / $w;
    }
} else {
    $im_w = $width;
    $im_h = $height;
}
$x = ($width-$im_w)/2;
$y = ($height-$im_h)/2;
// 4 - Création d'une image buffer
    $dst_img = imagecreate($width, $height);
    if (!$dst_img) return "Erreur : Buffer non créé : ".$dst_img;
    $bgc = imagecolorallocate($dst_img, 255, 255, 255);
    imagefilledrectangle($dst_img, 0, 0, $width, $height, $bgc);
    imagecopyresized($dst_img,$src_img,$x,$y,0,0,$im_w,$im_h,$w,$h); 
// 5 - Enregistrement du fichier
    imagejpeg($dst_img,$destination,$quality); 
}
?>

Conclusion :


Resize($source, $destination, $width, $height, $stretch, $quality)

Bon alors en paramétres tu indiques :

- source
l'image que tu veux redimensionner

-destination
l'image résultante

- width
la largeur de l'image résultante

- height
la hauteur de l'image résultante

- stretch
true/false : si l'image est strétchée ou bien proportionelle

- quality
la qualitée de l'image résultante

MISES A JOUR :

15/01/2004 : J'ai rajoutté l'argument strectch afin de pourvoir choisir entre étirer l'image ou la redimensionner automatiquement.

BUGS : Aucun bug constaté pour le moment.

Codes Sources

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.