begin process at 2012 05 31 14:04:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Redimensionner une image en 200 par 200


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Redimensionner une image en 200 par 200

mardi 20 avril 2010 à 22:55:07 | Redimensionner une image en 200 par 200

samt01

Bonjour à tous,

j'aimerais redimensionner mes images si la largeur ou la longueur est supérieur à 200 px.

J'aimerais les redimensionner en maximum 200 pixel en conservant les proportions.

Voici mon script de base :

Code PHP :


 if(isset($_FILES['up_photo']))
      {
 
	   
      unset($erreur);
   
      $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
   
	  
	  // on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels). 
	  // En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, 
	  // soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).  
	  
	  $ratio = 50;  
	  
	  // Création des dossiers
	
	  if (!file_exists($dest_dossier)) 
	  {
		mkdir ($dest_dossier, 0777); 
	  }
	  
	  if (!file_exists($dest_dossier_mini)) 
	  {
		mkdir ($dest_dossier_mini, 0777); 
	  }
	  
	  // on compte d'abord le nombre d'image dans le répertoire
	  
	  $num_images = count_files($dest_dossier);
	  
	if ($num_images < 10)
	{
	  
	  
	   // on teste si le champ permettant de soumettre un fichier est vide ou non
		if (empty($_FILES['up_photo']['tmp_name'])) 
		{
			// si oui, on affiche un petit message d'erreur
			$erreur[] = 'Aucun fichier envoyé.';
		}
		else
		{

			// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier 
			//(je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations) 
	  
			$tableau = @getimagesize($_FILES['up_photo']['tmp_name']); 
	    
			if ($tableau == FALSE) 
			{ 
				// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur 
				unlink($_FILES['up_photo']['tmp_name']); 
				$erreur[] = 'Votre fichier n\'est pas une image.'; 
		     }
			 else
			 {
  
				// vérifications de l'extention
  
				if( !in_array( substr(strrchr($_FILES['up_photo']['name'], '.'), 1), $extensions_ok ) )
 
				{
					$erreur[] = 'Veuillez sélectionner un fichier de type png, gif ,jpg ou jpeg !';
				}
  
					elseif( file_exists($_FILES['up_photo']['tmp_name'])
  
					and filesize($_FILES['up_photo']['tmp_name']) > $max_size)
  
				{
					$erreur[] = 'Votre fichier doit faire moins de 500Ko !';
				}
	  
				// on détremine la taille de la photo
	  
				$up_taille = $_FILES['up_photo']['size'];
				
				$dest_fichier = basename($_FILES['up_photo']['name']);// cela donne le même résultat que la commande ==> $_FILES['up_photo']['name'];
				
				// si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload 
	  
				if (is_file($dest_dossier .$_FILES['up_photo']['name']))
				{
						// echo 'dest_fichier = '.$dest_fichier;
					$dest_fichier = '_'.$_FILES['up_photo']['name']; 
					 	// echo 'dest_fichier = '.$dest_fichier;
				}
				
				
				// formatage nom fichier
				// enlever les accents

				$dest_fichier = strtr($dest_fichier,

				'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
				'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
 
				// remplacer les caracteres autres que lettres, chiffres et point par _
 
				$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
				
			
	  
				// on vérifie si le fichier n'est pas déjà présent : 
	  
				$chemin_fic = $dest_dossier . $dest_fichier;
		  
			
				/*if (file_exists($chemin_fic)) 
				{
					$dest_fichier = 'DUP'.$dest_fichier;
					echo 'dest_fichier = '.$dest_fichier;
				}*/
				// si l'image n'est ni un jpeg, ni un png, on supprime  le fichier uploadé et on affiche le message d'erreur
				 
				if (!($tableau[2] == 2 || $tableau[2] == 3)) 
				{ 
					 unlink($_FILES['up_photo']['tmp_name']); 
					 $erreur[] = 'Votre image est d\'un format non supporté. Les formats supportés sont uniquement jpeg et png.'; 
				} 
				
			}
		}
	}
	else
	{
		$erreur[] = 'Vous ne pouvez pas charger plus de 10 photos';
	}
 
      // copie du fichier
  
      if(!isset($erreur))
 
      {
 
      // copie du fichier
	
			if (move_uploaded_file($_FILES['up_photo']['tmp_name'], $dest_dossier . $dest_fichier)) // à ce moment on met le fichier sur le serveur
			{
				
				// Creation de l'image miniature 
				
				 // si notre image est de type jpeg 
				if ($tableau[2] == 2) 
				{ 
					// on crée une image à partir de notre grande image à l'aide de la librairie GD 
					$src = imagecreatefromjpeg($dest_dossier.'/'.$dest_fichier); 
					// on teste si notre image est de type paysage ou portrait 
					if ($tableau[0] > $tableau[1]) 
					{ 
						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
					} 
					else 
					{ 
						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
					} 
					// on copie notre fichier généré dans le répertoire des miniatures 
					imagejpeg ($im, $dest_dossier_mini.'/'.$dest_fichier); 
				} 
				
				if ($tableau[2] == 3) 
				{ 
					$src = imagecreatefrompng($dir.'/'.$file_upload); 
					if ($tableau[0] > $tableau[1]) 
					{ 
						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
					} 
					else 
					{ 
						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
					} 
					imagepng ($im, $dir_mini.'/'.$file_upload); 
				} 
				
				





Merci d'avance pour votre aide.
mardi 27 avril 2010 à 10:12:35 | Re : Redimensionner une image en 200 par 200

mailliam

Tchô!
je sais pas si tu attends tjs une réponse 7 jours après, moi je ferais comme ca:

($donnees['img'] est le chemin de l'img inscrit dans la base de données, car j'imagine que c'est des img que les membres du site ont téléchargées)

<? if ($donnees['img'] == '')
{ //on s'assure qu'il y a bien une img (sinon on fait rien..)
}
else
{ ?>
<? $dimensions=getimagesize($donnees['img']);
if($dimensions[0]<=200 && $dimensions[1]<=200) //200x200px
{
?>
<br><img src="<?php echo $donnees['img']; ?>" border="0" ALT=""><br>
<?php }
else
{
?>
<br><img src="<?php echo $donnees['img']; ?>" border="0" width="200" hight="200" ALT=""><br>
<? }
}
?>

et voilou


Cette discussion est classée dans : fichier, tableau, dest, ratio, if


Répondre à ce message

Sujets en rapport avec ce message

Uploader une image. [ par mwa_85 ] Bonjour, Vola daeux semaine que je suis en rade pour réussir à faire ce p*****n de script, pour uploader 1 image, la copié dans un dossier et la min Tableau dans php [ par shadow578 ] Bonjour, Alors j'ai un petit script qui me permet de lister les fichiers présents dans le dossier, jusqu'à la tout va bien, mais j'aimerai les cla Comment récupérer sur le serveur un fichier image uploadé par un utilisateur ? [ par pjcleder ] PAT Bonjour, Mon hébergeur a déclaré /tmp comme répertoire upload_tmp_dir. D' après mon script, le fichier image est bien envoyé mais je ne vois pas c trop de lignes, faire plusieur pages [ par shadow578 ] bonjour, Voilà j'ai fait un explorer de fichier en php, donc sa m'affiche les fichier avec la taille etc.. J'aimerai quand il y a plus de 30fichiers Problème affichage tableau avec timer [ par maxencergenty ] Salut, voila j'ai développer un petit module pour joomla qui affiche des vignettes à partir de la base de donnée. On peut sélectionner la catégorie, l Comment enregistrer des résultats dans un tableau ? [ par cdevilliers ] Bonjour, Je débute en PHP. J'ai commencé à coder la fonction ci-dessous (qui est certainement optimisable) - Lecture d'un fichier et suppression de ch récupérer un fichier de la BD MYSQL [ par mao54 ] salutj'ai des fichier stockés dans la base de donnée et j'ai une methode de recherche qui affiche ces resultats dans un tableau.je souhaite dans la co Affichage des fichiers par date [ par ninho44 ] Bonjour tout le monde,Je suis débutant en PHP, et je suis en train de créer un site. Mon problême: Je fais un systeme de news qui affiche sur ma page Problemen copy sur dédié [ par laubro ] bonjourj'ai un script de copie de repertoire qui tourne impec sur un espace mutualisé, mais une fois sur un dédié, il ne fonctionne pas bien, la copie Damier 4*4 php [ par C0rt1ch ] Salut,J'ai un probleme dans la création d'un Damier de 4*4 en php.Je voudrais remplir un tableau, avec le nom des images afin de les garder en mémoire


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,137 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales