begin process at 2008 08 20 12:48:04
1 228 823 membres
193 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉATION DE MINIATURES D'IMAGES


Information sur la source

Catégorie :Graphique Niveau : Débutant Date de création : 26/08/2004 Vu : 5 498

Note :
5 / 10 - par 2 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Cette fonction permet de créer une miniature (image non écrasée) de quelques kilo octets pour vos photos.
Cette fonction peut être appelée par exemple, juste après l'upload d'une image

Elle reçoit en paramètres l'image, la hauteur & la largeur de la miniature désirée et la qualité de la miniature (de 0 à 100)

Utilise la librairie GD (version 1.6 et supérieure)

Source

  • function generer_miniature($image, $largeur, $hauteur, $qualite) {
  • // chemin de la miniature à générer
  • $dest = "../images/miniatures/mini_$image";
  • // dossier où se trouve l'image source
  • $dossier = "../images/";
  • $img_in = ImageCreateFromJpeg($dossier.$image);
  • $size = getimagesize($dossier.$image);
  • $l = $size[0];
  • $h = $size[1];
  • if (($l >= $largeur) && ($h>= $hauteur)) {
  • $new_haut = ($h * $largeur) / $l;
  • if($new_haut < $hauteur) {
  • $new_haut = $hauteur;
  • $new_larg = ($l * $hauteur) / $h;
  • } else {
  • $new_larg = $largeur;
  • }
  • // on réduit l'image à la largeur voulue, mais en gardant la hauteur proportionnelle
  • $img_out = ImageCreate($new_larg, $new_haut);
  • ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h);
  • // création d'une image vide aux dimensions de la miniature
  • $im = ImageCreate($largeur, $hauteur);
  • // on copie la zone de l'image de hauteur voulue dans l'image vide
  • ImageCopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur);
  • ImageJpeg($im, $dest, $qualite);
  • // destruction des images en mémoire
  • ImageDestroy($img_out);
  • ImageDestroy($im);
  • } elseif (($l < $largeur) && ($h >= $hauteur)) {
  • $img_out = ImageCreate($l, $h);
  • ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h);
  • $im = ImageCreate($l, $hauteur);
  • ImageCopy($im, $img_out, 0, 0, 0, 0, $l, $hauteur);
  • ImageJpeg($im, $dest, $qualite);
  • // destruction des images en mémoire
  • ImageDestroy($img_out);
  • ImageDestroy($im);
  • } elseif ($l >= $largeur && $h < $hauteur) {
  • $img_out = ImageCreate($l, $h);
  • ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h);
  • $im = ImageCreate($largeur , $h);
  • ImageCopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur);
  • ImageJpeg($im, $dest, $qualite);
  • // destruction des images en mémoire
  • ImageDestroy($img_out);
  • ImageDestroy($im);
  • } elseif ($l < $largeur && $h< $hauteur) {
  • ImageJpeg($img_in, $dest, $qualite);
  • }
  • // destruction de l'image en mémoire
  • ImageDestroy($img_in);
  • }
function generer_miniature($image, $largeur, $hauteur, $qualite) {

		// chemin de la miniature à générer
		$dest = "../images/miniatures/mini_$image";
		
		// dossier où se trouve l'image source
		$dossier = "../images/";
		
		$img_in = ImageCreateFromJpeg($dossier.$image);

		$size = getimagesize($dossier.$image);
		$l = $size[0];
		$h = $size[1];
		
		if (($l >= $largeur) && ($h>= $hauteur)) {

			$new_haut = ($h * $largeur) / $l;
			if($new_haut < $hauteur) {
			
				$new_haut = $hauteur;
				$new_larg = ($l * $hauteur) / $h;
			
			} else {
			
				$new_larg = $largeur;
				
			}
			
			// on réduit l'image à la largeur voulue, mais en gardant la hauteur proportionnelle
			$img_out = ImageCreate($new_larg, $new_haut);
			ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h);
						
			// création d'une image vide aux dimensions de la miniature
			$im = ImageCreate($largeur, $hauteur);

			// on copie la zone de l'image de hauteur voulue dans l'image vide
			ImageCopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur);
			ImageJpeg($im, $dest, $qualite);
			
			// destruction des images en mémoire
			ImageDestroy($img_out);
			ImageDestroy($im);
		
		} elseif (($l < $largeur) && ($h >= $hauteur)) {
		
			$img_out = ImageCreate($l, $h);
			ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h);
			
			$im = ImageCreate($l, $hauteur);
			
			ImageCopy($im, $img_out, 0, 0, 0, 0, $l, $hauteur);
			ImageJpeg($im, $dest, $qualite);
			
			// destruction des images en mémoire
			ImageDestroy($img_out);
			ImageDestroy($im);
			
		} elseif ($l >= $largeur && $h < $hauteur) {
		
			$img_out = ImageCreate($l, $h);
			ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h);
			
			$im = ImageCreate($largeur , $h);
			
			ImageCopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur);
			ImageJpeg($im, $dest, $qualite);
			
			// destruction des images en mémoire
			ImageDestroy($img_out);
			ImageDestroy($im);
			
		} elseif ($l < $largeur && $h< $hauteur) {
		
			ImageJpeg($img_in, $dest, $qualite);
			
		}
		
		// destruction de l'image en mémoire
		ImageDestroy($img_in);
		
	}
  • signaler à un administrateur
    Commentaire de flashfun le 26/08/2004 16:19:36

    Voici ton script amélioré par moi-même :

    http://www.phpcs.com/code.aspx?ID=25718

  • signaler à un administrateur
    Commentaire de triomen le 30/08/2004 12:24:19

    Alors, je suis un peu débutant et j'aimerai savoir qu'est ce que le librairie GD, même si j'ai une petite idée,mais surtout, comme l'installer !! Est ce mon hébergeur qui fait ça (free) ?
    Merci d'avance

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS