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 :

probleme avec une fonction qui retaille mes images


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut probleme avec une fonction qui retaille mes images
    Bonjour,

    j'ai essayer d'utiliser une fonction pour retailler les images.
    Mais lorsque j'utilise cette fonction elle m'affiche des carrés noirs à la place des images.

    Fonction :
    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
     
    function redimage($img_src, $img_dest, $dst_w, $dst_h, $admin=false) {
     
    //echo 'img_src: '.$img_src.'<br> img_dest :'.$img_dest.'<br> dst_w: '.$dst_w.'<br> dst_h: '.$dst_h;
     
    	//Lit les dimensions de l'image
    	$size = GetImageSize($img_src);  
    	$src_w = $size[0]; $src_h = $size[1];
     
    	//echo '<br> size : '.$size.'<br> src_w :'.$src_w ;
    	//die();  
     
    	//Teste les dimensions tenant dans la zone
    	$test_h = round(($dst_w / $src_w) * $src_h);
    	$test_w = round(($dst_h / $src_h) * $src_w);
     
    	//Si Height final non pr&eacute;cis&eacute; (0)
    	if(!$dst_h) { 
    		$dst_h = $test_h;
    	}
    	//Sinon si Width final non pr&eacute;cis&eacute; (0)
    	elseif(!$dst_w) {
    		$dst_w = $test_w;
    	}
    	//Sinon teste quel redimensionnement tient dans la zone
    	elseif($test_h>$dst_h) {
    		$dst_w = $test_w;
    	}
    	else {
    		$dst_h = $test_h;
    	}
     
    	//La vignette existe ?
    	$test = (file_exists($img_dest));
     
    	//L'original a &eacute;t&eacute; modifi&eacute; ?
    	if($test) {
    		$test = (filemtime($img_dest)>filemtime($img_src));
    	}
     
    	//Les dimensions de la vignette sont correctes ?
    	if($test) {
    		$size2 = GetImageSize($img_dest);
    		$test = ($size2[0]==$dst_w);
    		$test = ($size2[1]==$dst_h);
    	}
     
    	//Cr&eacute;er la vignette ?
    	if(!$test) {
     
    		//Cr&eacute;e une image vierge aux bonnes dimensions
     
    		$extension=explode('.',$img_src);
     
     
    		//$dst_im = ImageCreate($dst_w,$dst_h);
    		$dst_im = ImageCreateTrueColor($dst_w,$dst_h); 
     
    		//Copie dedans l'image initiale redimensionn&eacute;e
    		if(strtolower($extension[1])=='jpg')
    		{
    			$src_im = imagecreatefromjpeg($img_src);
     
    		}
     
     
    		if(strtolower($extension[1])=='png')
    		{
    			$src_im = imagecreatefrompng($img_src);
     
    		}
     
    		if(strtolower($extension[1])=='gif')
    		{
    			$src_im = imagecreatefromgif($img_src);
     
    		}
    		//ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
    		ImageCopyResampled($dst_im, $src_im, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
    		//Sauve la nouvelle image
    		ImageJpeg($dst_im, $img_dest);
    		//D&eacute;truis les tampons
    		ImageDestroy($dst_im);  
    		ImageDestroy($src_im);
    	}
     
    	$retour_dossier = '';
    	if($admin) {
    		$retour_dossier = '../';
    	}
    	//Affiche le descritif de la vignette
    	return 'src="'.$retour_dossier.$img_dest.'?t='.time().'" width="'.$dst_w.'" height="'.$dst_h.'"';
    }
    Voila comment je l'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    		$ligne=mysql_fetch_array($result);
     
    				$f =  "../photos/articles/".$ligne['IMAGES'];
    				$f2 = "../photos/articles/vignette_".$ligne['IMAGES'];						
    				$album ="../photos/articles/".$ligne['IMAGES'];
    				$largeur = 180; 
    				$hauteur = 160;
     
     
     
    	<img '.redimage($f, $f2, $largeur, $hauteur).'" class="article1" />
    Merci d'avance pour votre aide

  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
    Ta fonction fonctionne, il serait bien que tu fasses un minimum de debugage.
    Est-ce que les miniatures sont bien créés ?
    Est-ce que tu peux les ouvrir depuis ton systèmes ?
    Est-ce que la balise img est bien écrite dans la page finale ?
    etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Merci pour ta réponse.
    Mais fais du débeugage.
    L'image est bien créé mais bizarement il me créé une image noire.
    Et j'ai regardé avec firebug et il affiche bien la balise img

  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
    Est-ce que tu arrives a ouvrir les images créées ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Oui oui j'arrive bien a les ouvrir et ça m'affiche un carré noir.
    La fonction me créé un carré noir au lieu de me créé la miniature de l'image

  6. #6
    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
    Tu as essayé avec des photos tierces ?
    Tu pourrais nous fournir une image qui ne se recadre pas correctement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Photos tierce?

    Voila l'image qui s'affiche et qui est créé dans mon dossier

    Nom : seq.jpg
Affichages : 64
Taille : 14,5 Ko

  8. #8
    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
    C'est une image que tu n'arrives pas a recadrer qui pourrait etre intéressante.
    La copie d'écran de l'image noire ... comment dire ....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/11/2009, 23h35
  2. Réponses: 5
    Dernier message: 25/09/2006, 11h06
  3. probleme avec une fonction enable() toute simple !!
    Par K_!!! dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/05/2006, 15h10
  4. [9i] PLS-00320 avec une fonction qui renvoi un curseur
    Par hoaxpunk dans le forum Oracle
    Réponses: 5
    Dernier message: 09/02/2006, 17h04
  5. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 22h48

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