Redimensionnement d'image et upload

aouchachacha
Invité n'ayant pas de compte PHPfrance

08 juil. 2007, 15:06

Bonjour!

Free limite à 2Mo l'upload de fichiers, je cherche à trouver une solution pour permettre aux utilisateurs de mon site de charger des images dans ma galerie sans soucis de taille. J'aimerai faire un redimensionnement automatique avant de sauvegarder l'image sur le serveur.

Est-ce possible? Sinon quelles solutions ai-je à part changer de fournisseurs?

Mammouth du PHP | 505 Messages

08 juil. 2007, 16:09

Pour pouvoir la redimentionner, il faut déjà avoir l'image, cela suppose donc que l'upload a déjà eu lieu. Hors il est limité a 2Mo. Donc tu ne peux pas faire de redimentionnement sur le serveur puisque tu ne peux pas uploader.
Il te reste 2 solutions, tu responsabilises tes utilisateurs en indiquant clairement la taille max des images s uploadables ou tu trouves (ou tu créer) un service online permettant de redimentionner.

Eléphanteau du PHP | 48 Messages

17 juil. 2007, 14:05

et une fois que tu as ton image
tu la redimensionne avec GD
/// retaillage a 600 de large;

			$dim =  getimagesize($file['tmp_name']);

			$src_im = ImageCreateFromJpeg($file['tmp_name']);

		   	$dst_w = $width; // Contraint le rééchantillonage à une largeur fixe
		  	$dst_h = round(($dst_w / $dim[0]) * $dim[1]); // Maintient le ratio de l'image

			$dst_im = ImageCreateTrueColor($dst_w,$dst_h);

			// ImageCopyResampled copie et rééchantillonne l'image originale
			ImageCopyResampled($dst_im, $src_im,0,0,0,0,$dst_w,$dst_h,$dim[0],$dim[1]);

			// ImageJpeg génère l'image dans la sortie standard (c.à.d le navigateur).
			//Le second paramètre est optionnel ; dans ce cas, l'image est générée dans un fichier
			ImageJpeg($dst_im, getcwd() . '/'. $directory . '/'. $file['name'] );

			ImageDestroy($dst_im);
			imageDestroy($src_im);
-- fight the void --

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 juil. 2007, 14:24

Modération :
joachiim, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 48 Messages

17 juil. 2007, 14:30

je savais pas
je le ferais plus
-- fight the void --