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

PHP & Base de données Discussion :

Upload de photo sans perte de qualité


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Upload de photo sans perte de qualité
    Bonjour

    J'ai un script d'upload de photo avec plusieurs redimensionnement . ce que je souhaite c'est apporté une amélioration .

    Je souhaites donc uploadé mes photos en php MAIS en gardant la qualité des images aprés upload :

    voilà le code, qu'est ce que je pourrais apporté comme amélioration pour donc upload sans perte de qualité


    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
    session_start();
    include("mysqlcon.php");
    function getExtension($str) 
    {
     
             $i = strrpos($str,".");
             if (!$i) { return ""; } 
             $l = strlen($str) - $i;
             $ext = substr($str,$i+1,$l);
             return $ext;
    }
    if(isset($_FILES["photodp"]))
    {
    	define ("MAX_SIZE",	"4000000");
    	$errors	=	0;
    	$filename		=	$_FILES["photodp"]["name"];
    	$uploadedfile 	= 	$_FILES['photodp']['tmp_name'];
    	$type_file 		= $_FILES['photodp']['type'];
    	if ($filename) 
    	{
    		if( !is_uploaded_file($uploadedfile) )
    		{
    			echo "<script type='text/javascript'>alert(\"le fichier est introuvable\")</script>"; 
    echo ("Fichier introuvable");
     
    		}
    		// on vérifie maintenant l'extension
    		elseif( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png'))
    		{
    			exit("Le fichier n'est pas une image");
    echo ("Le fichier n'est pas une image");
     
    		}
    		else
    		{
     
    			$size		=	filesize($_FILES['photodp']['tmp_name']);
    			if ($size > MAX_SIZE*1024)
    			{echo ("vérifié la taille de image");
     
    				exit ("verifier la taille de votre image!!");
    				$errors=1;
    			}
    			$extension 	= 	getExtension($filename);
    			$extension 	= 	strtolower($extension);
    			if($extension=="jpg" || $extension=="jpeg" )
    			{
    				$uploadedfile 	= 	$_FILES['photodp']['tmp_name'];
    				$src 			= 	imagecreatefromjpeg($uploadedfile);
    			}
    			else if($extension=="png")
    			{
    				$uploadedfile 	= 	$_FILES['photodp']['tmp_name'];
    				$src 			= 	imagecreatefrompng($uploadedfile);
    			}
    			else 
    				$src 	= 	imagecreatefromgif($uploadedfile);
     
    			list($width,$height)	=	getimagesize($uploadedfile);
     
    			$newwidth	=	640;
    			$newheight	=	486;
    			$tmp		=	imagecreatetruecolor($newwidth,$newheight);
     
    			$newwidth1	=	140;
    			$newheight1	=	93;
    			$tmp1		=	imagecreatetruecolor($newwidth1,$newheight1);
     
     
    			$newwidth2	=	300;
    			$newheight2	=	300;
    			$tmp2		=	imagecreatetruecolor($newwidth2,$newheight2);
     
     
    			imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
     
    			imagecopyresampled($tmp1, $src, 0, 0, 0, 0, $newwidth1, $newheight1, $width, $height);
     
    			imagecopyresampled($tmp2, $src, 0, 0, 0, 0, $newwidth2, $newheight2, $width, $height);
     
    			 $name = "xxx-com";
     
    		$idcon = $_SESSION["id_user"];
            $dest_fichier = '' .time(). '' .$name. '.' .$extension;
    		$filename 	= 	"upload/". $dest_fichier;
    		$filename1 	= 	"upload/small_". $dest_fichier;
    		$filename2 	= 	"upload/photodp_". $dest_fichier;
     
    		$qu = "INSERT INTO albums(id,id_user,lien, miniature, photodp, type) VALUES ('', '$idcon','$filename','$filename1','$filename2','album')";
    		$qus = $conn->query($qu);
    			imagejpeg($tmp,$filename,100);
    			imagejpeg($tmp1,$filename1,100);
    			imagejpeg($tmp2,$filename2,100);
     
    			imagedestroy($src);
    			imagedestroy($tmp);
    			imagedestroy($tmp1);
    			imagedestroy($tmp2);
    		}
    	}
     
    } else {
    	echo("Mauvais fichier");
    }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton problème ne serait pas plutôt que tu déformes les proportions de l'image ?
    Concernant la qualité, étant donné que tu changes les dimensions, tu perds des informations sur l'original.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Oui bien sur cela déforme l'image c'est ce que j'appelle une perte de qualité (j'avou que je me suis peut etre mal exprimé)

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    jreaux a écrit une classe de redimensionnement qui gère ça :
    http://j-reaux.developpez.com/tutori...sionner-image/
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    en fait, j'ai écrit des fonctions de redimensionnement

    ABCIWEB a écrit une Classe d'Upload et Redimensionnement

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    et laquelle me conseille tu pour évité qu'elle se déforme aux maximum, et que je puisse adapté a mon site?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script d'upload sans perte de qualité
    Par runcafre91 dans le forum Langage
    Réponses: 5
    Dernier message: 14/11/2010, 12h00
  2. conversion flv mp3 sans perte de qualité
    Par barbug dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 14/08/2010, 13h02
  3. Inclure un dessin sans perte de qualité
    Par Christophe Genolini dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 17/05/2009, 17h00
  4. Dessiner sur un Jpeg sans perte de qualité
    Par poly128 dans le forum Langage
    Réponses: 3
    Dernier message: 03/09/2007, 21h35
  5. Upload de photo et réduire la qualité.
    Par Poulain dans le forum ASP.NET
    Réponses: 6
    Dernier message: 27/08/2007, 14h22

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