Accès au manager - réservé aux membres

Navigation

Bouts de Codes PHP

Création d'une miniature avec une largeur ou une hauteur maximum à partir d'une image source

Informations sur le code source PHP

Ecrit par :  medium69
Site de l'auteur Voir
Autres codes en PHP de l'auteur : [3] sources Voir
Date d'enregistrement du code le 18 Mai 2008 - Vu 1903 fois
Code source zippé: Télécharger le fichier ZIP
Impression: Imprimer le code
Ajouter la page à vos favoris

Description du code source

Informations sur le code source

Ce script permet la création d'une image redimensionnée d'une hauteur ou d'une largeur maximum tout en gardant ses proportions.

Le script traite le jpg et le png à l'exclusion du gif qui peut être animé.

L'image créée est enregistré dans un dossier spécifique avec le nom d'origine suivi de la largeur ; cela permet d'utiliser l'image d'origine dans plusieurs tailles.

Exemple :
Image d'origine : img/illustrations/A/aristote.jpg
Image redimensionnée : temp/img/illustrations/A/aristote-266px.jpg

Code Source



.01
.02
.03
.04
.05
.06
.07
.08
.09
.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
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
.59
.60
.61
.62
.63
.64
.65
.66
.67
.68
.69
.70
.71
.72
.73
.74
.75
.76
.77
.78
.79
.80
.81
.82
.83
.84
.85
.86
.87
.88
.89
.90
.91
.92
.93
.94
.95
.96
.97
.98
.99
.100
.101
.102
.103
.104
.105
.106
.107
.108
.109
.110
.111
.112
.113
.114
.115
.116
.117
.118
.119
.120
.121
.122
.123
.124
.125
.126
.127
.128
.129
.130
 

<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Création d'une miniature avec une largeur ou une...       */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts390-PHP.htm              */
/* Auteur         : medium69                                                  */
/* Date édition   : 18 Mai 2008                                               */
/* Website auteur : http://www.science-et-vie.net                             */
/*                                                                            */
/******************************************************************************/

/* ***************************************************************************
- vignette($img_file, $img_max_width, $img_max_height)
- Création d'une vignette à partir d'une image ($img_file)
- Les extensions prises en compte sont jpg et png (le gif simple est remplacé
 par le png)
- Le gif n'est jamais redimensionné (gif animé)

* $img_file : chemin vers le fichier image à redimensionner
* $img_max_width : largeur maximum que doit faire la miniature
* $img_max_height : Hauteur maximum que doit faire l'image

Auteur : Will Crochot alias medium69
Site : http://www.science-et-vie.net
*************************************************************************** */

function vignette($img_file$img_max_width$img_max_height) {
  
  $file realpath($img_file); // Chemin canonique absolu de l'image
  $dir dirname($img_file).'/'// Chemin du dossier contenant l'image
  $img_infos getimagesize($file); // Récupération des infos de l'image
  $img_width $img_infos[0]; // Largeur de l'image
  $img_height $img_infos[1]; // Hauteur de l'image
  $img_type $img_infos[2]; // Type de l'image
  
  // Détermination des dimensions de l'image
  if ($img_max_width $img_width) {
    $img_max_width $img_width// Largeur de la vignette
  }
  
  if ($img_max_height $img_height) {
    $img_max_height $img_height// Hauteur de la vignette
  }
  // Facteur largeur par hauteur des dimensions max de la vignette
  $img_thumb_fact_width_height $img_max_width $img_max_height;
  // Facteur largeur par hauteur de l'original
  $img_fact_width_height $img_width $img_height;
  
  // Détermination des dimensions de la vignette
  if ($img_thumb_fact_width_height $img_fact_width_height) {
    $img_thumb_width  $img_max_width// Largeur de la vignette
    $img_thumb_height $img_thumb_width $img_fact_width_height// Hauteur
  } else {
    $img_thumb_height $img_max_height;  // Hauteur de la vignette
    $img_thumb_width  $img_thumb_height $img_fact_width_height// Largeur
  }
  
  // Vérification de la présence de la vignette
  $img_file_temp 'temp/'.$img_file// Adresse de l'image temporaire de base
  // Découpe de la taille de la vignette
  $exp_img_thumb_width explode(','$img_thumb_width);
  //Adresse de la vignette
$img_thumb_name=preg_replace('/(.+).(.+)/U',
                             '$1'.REW.$exp_img_thumb_width[0].'px.$2',
                             $img_file_temp);
  if (is_file($img_thumb_name) ) {
    return $img_thumb_name;
  }    
  
  // Création du dossier de l'image
  $exp_dir explode('/'DOSS_TEMP.$dir); // Découpe du chemin
  $nb_exp_dir count($exp_dir) -1;
  
  
  for  ($a 0$dir NULL$a $nb_exp_dir$a ++) {
    $dir .= $exp_dir[$a].'/'// Chemin du cache
    
    // Détermination du chemin
    if (!is_dir($dir)) {
      mkdir($dir0755true); // Création du dossier
    }
  }
  
  // Sélection des variables selon l'extension de l'image
  switch ($img_type) {
    case 2:
      // Création d'une nouvelle image jpeg à partir du fichier
      $img imagecreatefromjpeg($file);
      $img_ext '.jpg'// Extension de l'image
      break;
    case 3:
      // Création d'une nouvelle image png à partir du fichier
      $img imagecreatefrompng($file);
      $img_ext '.png';  // Extension de l'image
  }
  // Création de la vignette
  $img_thumb imagecreatetruecolor($img_thumb_width$img_thumb_height);
   // Insertion de l'image de base redimensionnée
  imagecopyresized($img_thumb$img0000$img_thumb_width,
                                                 $img_thumb_height,
                                                 $img_width,
                                                 $img_height);
$file_name basename($img_file$img_ext); //Nom du fichier sans son extension
// Chemin complet du fichier de la vignette
  $img_thumb_name $dir.$file_name.REW.$exp_img_thumb_width[0].'px'.$img_ext;
  
  // Sélection de la vignette créée
  switch($img_type){
    case 2:
    // Enregistrement d'une image jpeg avec une compression de 75 par défaut
      imagejpeg($img_thumb$img_thumb_name);
      break;
    case 3:
      imagepng($img_thumb$img_thumb_name); // Enregistrement d'une image png
  }
  
  return $img_thumb_name// Chemin de la vignette
}
?>

Fonctions du code source

Fonctions php / mysql PHP

  • realpath : Retourne le chemin canonique absolu - (PHP 4, PHP 5)
  • dirname : Renvoie le nom du dossier - (PHP 4, PHP 5)
  • getimagesize : Retourne la taille d'une image - (PHP 4, PHP 5)
  • explode : Coupe une chaîne en segments - (PHP 4, PHP 5)
  • preg_replace : Rechercher et remplacer par expression rationnelle standard - (PHP 4, PHP 5)
  • is_file : Indique si le fichier est un véritable fichier - (PHP 4, PHP 5)
  • count : Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet - (PHP 4, PHP 5)
  • is_dir : Indique si le fichier est un dossier - (PHP 4, PHP 5)
  • mkdir : Crée un dossier - (PHP 4, PHP 5)
  • imagecreatefromjpeg : Crée une nouvelle image à partir d'un fichier ou d'une URL - (PHP 4, PHP 5)
  • imagecreatefrompng : Crée une nouvelle image à partir d'un fichier ou d'une URL - (PHP 4, PHP 5)
  • imagecreatetruecolor : Crée une nouvelle image en couleurs vraies - (PHP 4 >= 4.0.6, PHP 5)
  • imagecopyresized : Copie et redimensionne une partie d'une image - (PHP 4, PHP 5)
  • basename : Sépare le nom du fichier et le nom du dossier - (PHP 4, PHP 5)
  • imagejpeg : Envoie une image JPEG vers un navigateur ou un fichier - (PHP 4, PHP 5)
  • imagepng : Envoie une image PNG vers un navigateur ou un fichier - (PHP 4, PHP 5)

Poster un commentaire

:P :) :wink: :lol: :surprised: :confused: :mad: :no:
Taille du texte:
Couleur:
Code de sécurité

Les dernières offres d'emploi