IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[GD] Retailler l'image pendant l'upload


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de tsunamichups
    Inscrit en
    Octobre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 161
    Par défaut [GD] Retailler l'image pendant l'upload
    Bonjour,

    j'ai actuelement un script qui me permet d'uploader mon image et de générer a partir de cet upload une miniature independante avec les fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    imagecreatefromgif()
     
    imagecreatefromjpeg()
     
    imagecreatefromjpeg()
     
    imagecreatefrompng()
    celon le type de fichier et les fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    imagecreatetruecolor()
     
    imagecopyresampled()
     
    imagejpeg()
    On me demande de modifier la taille de ma première image (l'image principal sur laquelle s'appuie ma miniaturisation )
    Si je génère une seconde miniature qui écrasera mon image principal mon script deviens trop lourd et ne s'exécute pas entièrement.

    Pour faire les choses proprement je souhaiterais retailler l'image principal au survole des son upload et ne par conséquent ne pas toucher au code de la miniaturisation.


    Est ce que quelqu'un saurais ou aurais un tuto vers le quel me pencher pour adapter mon script d'upload ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 359
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 359
    Billets dans le blog
    17
    Par défaut
    je souhaiterais retailler l'image principal au survole des son upload
    Tu veux dire avant que l'image n'arrive sur le serveur ?
    Si oui la solution ne se trouve pas en PHP qui ne peut traiter l'image qu'après réception sur le serveur.

  3. #3
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Complètement ok avec ce que dit Seb.

    À priori, générer deux miniatures à partir d'une image ne devraient pas prendre longtemps à exécuter.

    Quel est le poids des images que tu envoient ?
    Peux-tu nous montrer le code source de ton script d'upload / découpe d'image ?
    Y-t-il d'autres scripts qui sont exécutés dans ta page ?
    Est-ce que ce script prend longtemps à exécuter sur ta machine ?

  4. #4
    Membre éprouvé Avatar de tsunamichups
    Inscrit en
    Octobre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 161
    Par défaut
    effectivement c'est légé comme explication

    Ma page doit gérer 3 upload + 3 miniature

    ainsi qu'une insertion d ans une base de donnée access (via pdo)

    et un affichage de de donnée dans des champs de formulaire.

    Pour ce qui est de la qualité des photo, c'est une qualité iphone et appareil photo, donc grande résolution et 1m5 minimum

    et ma page met pas mal de temps a s'exécuter (trop)

    pour ce qui est du code, j'ai ca a disposition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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
     
    ?php
    		/*
    		 * Function d'upload d'image
    		 */
    		function upload($nom, $image, $dossier_upload, $extensions, $taille_max)
    		{
    			$dossier = $dossier = $dossier_upload;
    			$fichier = addslashes(htmlentities($nom));
    			$extension = strrchr($image['name'], '.');
    			$fichier = $fichier.''.$extension;
    			$taille_maxi = $taille_max;
    			$taille = filesize($image['tmp_name']);
     
    			//Si l'extension n'est pas dans le tableau
    			if(!in_array($extension, $extensions)) 
    			{
    				$ext = '';
    				foreach($extensions as $value)
    				{
    					$ext .= $value.' ';
    				}
    				echo 'Vous devez uploader un fichier de type '.$ext;
    			}
    			else
    			{
    				if($taille>$taille_maxi)
    				{
    					echo 'Le fichier est trop gros pour être envoyer sur le serveur ...';
    				}
    				else
    				{
    					//correction des noms
    					$fichier = strtr(
    							$fichier,
    							'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    							'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'
    						);
    					$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
    					if(move_uploaded_file($image['tmp_name'], $dossier . $fichier))
    					{
    					}
    					else
    					{
    						echo 'Il y a eu un problème durant l\'envois de l\'image ';
    					}
    				}	
    			}
    			return $fichier;
    		}
     
    		function mignature($chemin, $image, $min, $NouvelleLargeur, $NouvelleHauteur)
    		{
          		$size = getimagesize($chemin.''.$image);
          		$extension = strrchr($image, '.');
     
    			switch($extension)
    			{
    				case '.gif' :
    					$ImageChoisie = imagecreatefromgif($chemin.''.$image);
    				break;
    				case '.jpg' :
    					$ImageChoisie = imagecreatefromjpeg($chemin.''.$image);
    				break;
    				case '.jpeg' :
    					$ImageChoisie = imagecreatefromjpeg($chemin.''.$image);
    				break;
    				case '.png' :
    					$ImageChoisie = imagecreatefrompng($chemin.''.$image);
    				break;
    				case '.GIF' :
    					$ImageChoisie = imagecreatefromgif($chemin.''.$image);
    				break;
    				case '.JPG' :
    					$ImageChoisie = imagecreatefromjpeg($chemin.''.$image);
    				break;
    				case '.JPEG' :
    					$ImageChoisie = imagecreatefromjpeg($chemin.''.$image);
    				break;
    				case '.PNG' :
    					$ImageChoisie = imagecreatefrompng($chemin.''.$image);
    				break;
    			}
     
    			$fichier = $chemin.''.$image.'-'.$min.''.$extension;
    			$img = $image.'-'.$min.''.$extension;
          		$NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur");
          		imagecopyresampled($NouvelleImage , $ImageChoisie  , 0,0, 0,0, $NouvelleLargeur, $NouvelleHauteur, $size[0],$size[1]);
          		imagejpeg($NouvelleImage , $fichier, 100);
     
          		return $img;
    		}
    ?>

    Merci

Discussions similaires

  1. [MySQL] gestion de nom de l'image pendant un upload
    Par raphaelf2 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/03/2016, 00h16
  2. Redimensionner image pendant upload
    Par david2511 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 03/02/2009, 13h17
  3. Compresser et retailler une image jpg à l'upload
    Par alltec dans le forum Imagerie
    Réponses: 6
    Dernier message: 23/01/2007, 18h32
  4. Réponses: 10
    Dernier message: 24/05/2006, 18h28
  5. [Image]Vérifier taille image lors d'upload FTP
    Par MiJack dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/09/2004, 02h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo