Redimensionner les images à l'upload

3 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Après avoir fouillé, peut-être mal, le forum, je viens avec ma petite question...

Comment redimensionner mes images à l'upload?

En fait je voudrais juste pouvoir uploader des images sans avoir à les redimensionner avec un autre logiciel.

Merci d'avance pour votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Après avoir fouillé, peut-être mal, le forum, je viens avec ma petite question...

Comment redimensionner mes images à l'upload?

En fait je voudrais juste pouvoir uploader des images sans avoir à les redimensionner avec un autre logiciel.

Merci d'avance pour votre aide.

je vous recommande d'utiliser la fonction suivante :

<?php


 function diewith($msg) {

		header("HTTP/1.0 500 Internal error.");

		echo $msg;

		die;

	}


function thumbs($image, $width, $height, $method) {


global $dirroot;


	$uri = $dirroot . "/upload/" . $image or diewith("Merci de préciser le nom de limage.");


	$inWidth = vb($width);

	$inHeight = vb($height);

	$method=$method;


	// Handle client cache (304)

	$srcTime = filemtime($uri) or diewith("Impossible d'ouvrir l'image");


	$reqTimeStr = vb($_SERVER['HTTP_IF_MODIFIED_SINCE']);


	// Récupère la taille de l'image

	$imgInfo = getimagesize($uri) or diewith("Impossible d'ouvrir l'image");

	$srcWidth =  $imgInfo[0];

	$srcHeight = $imgInfo[1];

	$srcType   = $imgInfo[2];

	switch($srcType) { 

		case 1 : $srcType = "gif"; break;

		case 2 : $srcType = "jpeg"; break;

		case 3 : $srcType = "png"; break;

		default: $srcType = "???";

	} 


	// Methode avec taille exacte

	if ($method == "stretch") {


		// Exact size

		$outWidth  = $inWidth;

		$outHeight = $inHeight;


	} else {  // Methode avec taille proportionnelle


		// Max size : resize

		$xRatio = ($inWidth) ?  ($srcWidth  / $inWidth) : 0;

		$yRatio = ($inHeight) ? ($srcHeight / $inHeight): 0;

		$ratio = max($xRatio, $yRatio, 1);

		$outWidth = intval($srcWidth / $ratio);

		$outHeight = intval($srcHeight/ $ratio);


	}


	// Nom de l'image cache

	$cacheName = md5($uri).'-'.basename($uri);

	$cacheFile = $dirroot . '/upload/thumbs/' . $cacheName;


	// Si l'image n'existe pas ou qu'elle est trop vielle on la calcule

	if (!file_exists($cacheName) or ($srcTime > $filectime($cacheFile))) {


		// Creation de l'image de sortie

		$outImg = imagecreatetruecolor ($outWidth, $outHeight);


		// Load src image

		switch($srcType) {

			case "png":

				$srcImg = imagecreatefrompng($uri);

				break;

			case "gif":

				$srcImg = imagecreatefromgif($uri);

				break;

			case "jpeg":

				$srcImg = imagecreatefromjpeg($uri);

				break;

			default: 

				diewith("Le type de l'image n'est pas supporté");

		};


		// Retaille l'image 

		imagecopyresampled($outImg, $srcImg, 0, 0, 0, 0, $outWidth, $outHeight, $srcWidth, $srcHeight);


		// Sauvegarde dans le répertoire Cache

		switch($srcType) {

			case "png":

				$res = imagepng($outImg, $cacheFile);

				break;

			case "gif":

				$res = imagegif($outImg, $cacheFile);

				break;

			case "jpeg":

				$res = imagejpeg($outImg, $cacheFile);

				break;

			default: 

				diewith("type de fichier non supporté '$uri'");

		}



		if (!$res) diewith("Impossible de sauvegarder l'image dans le répertoire cache. Merci de vérifier les droits d'accès sur le seruver.");

	}


	return $cacheName;

}		


?>

Cette fonction vous retourne un fichier de plus petite taille dans un répertoire /thumbs que vous mettez sous l'upload

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

J'ai essayé d'intégrer cette fonction à mon code mais je n'arrive pas est ce que quelqu'un pourrais m'aider svp.

Merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping