Faire des miniature d'image, des photos pour les profils

Soyez le premier à donner votre avis sur cette source.

Vue 6 035 fois - Téléchargée 502 fois

Description

j'ai utiliser la librairie GD de php 5éme version je crois ..

De plus je me suis permis d'utiliser un système de mise en cache de l'image, cela permet d'accélérer 'un peu' le processus'

Source / Exemple :


<?php
if(!ob_start("ob_gzhandler")) ob_start();
header("Cache-Control: max-age=(3600*24*7*31)"); 
$expires = date("r",time()+(3600*24*7*31))." GMT";
header("Expires: $expires"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s",filemtime($_SERVER["SCRIPT_FILENAME"])) . " GMT");
header('Content-type: image/jpeg');
 
if(isset($_GET['src'])){$source = $_GET['src'];}else{$source=null;}
//on met la source (url)

if(isset($_GET['q'])){$qualite = $_GET['q'];}else{$qualite = 80;}
//on entre la qualité voulus
//plus la qualité est médiocre, plus le processus est rapide !

//avec une limite tout de même
if($qualite>100){$qualite=100;}

if(isset($_GET['e'])){$ext = $_GET['e'];}
        else if($source != null){$ext= strtolower(substr($source,(strlen($source)-3),3));}

$largeur_mini=150;
switch(strtolower($ext)){
case "jpg" :
  $image_origine = imagecreatefromjpeg($source);
  break;
case "gif" :
  $image_origine = imagecreatefromgif($source);
  break;
case "tiff" :
  $image_origine = imagecreatefromtiff($source);
  break;
case "fif" :
  $image_origine = imagecreatefromfif($source);
  break;
case "ief" :
  $image_origine = imagecreatefromief($source);
  break;
case "bmp" :
  $image_origine = imagecreatefromwbmp ($source);
  break;
default :
  $image_origine = imagecreatefrompng($source);
  break;
}
  $largeur_origine = imagesx($image_origine);
  $hauteur_origine = imagesy($image_origine);
  if($largeur_origine>$largeur_mini){
  $hauteur_mini = $hauteur_origine * $largeur_mini /   $largeur_origine;
  $image_finale = imagecreatetruecolor($largeur_mini, $hauteur_mini);
  ImageCopyResampled($image_finale, $image_origine, 0, 0, 0, 0,   $largeur_mini, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );
  }
  else{$image_finale = imagecreatetruecolor($largeur_origine, $hauteur_origine);
  ImageCopyResampled($image_finale, $image_origine, 0, 0, 0, 0,   $largeur_origine, $hauteur_origine, imagesx($image_origine), imagesy($image_origine) );
  }
  imagejpeg($image_finale,"",$qualite);
  imagedestroy($image_finale);
header("Content-Length: ".ob_get_length());
ob_end_flush();
?>

Conclusion :


à vous d'en juger !

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

AZIRIAZIZ
Messages postés
34
Date d'inscription
dimanche 4 juillet 2010
Statut
Membre
Dernière intervention
19 mai 2011
1 -
ca ne marche pas tout simplement - qq chose doit manquer
merci pour l effort

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.