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 :

photos miniature qui renvoie au fiche membre


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut photos miniature qui renvoie au fiche membre
    alors pour mon site il faudrais que je crée une génération d'image a la volée et que lorsque que l'on clique dessus cela renvoie sur la page du membre , mes photos non redimensionnée sont contenu dans un dossier upload ! est ce que quelqu'un pourrais m'expliquer un peu la marche a suivre ou me donner l'adresse d'un bon tuto ?

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Voici ce que j'utilise pour redimmensionner des images à la demande

    fichier: class.image.php
    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
     
    <?
    class images {
     
    	function getAdjustedSize($orig_w, $orig_h, $max_w, $max_h) {
     
    		if(!$max_w && $max_h) $max_w = $orig_w * $max_h / $orig_h;
    		else if(!$max_h && $max_w) $max_h = $orig_h * $max_w / $orig_w;
    		else if(!$max_w && !$max_h) { $max_w = $orig_w; $max_h = $orig_h; }
     
    		$ratio = $max_w / $orig_w;
    		$h = $orig_h * $ratio;
    		if($h <= $max_h) $w = $max_w;
    		else {
    			$ratio = $max_h / $orig_h;
    			$w = $orig_w * $ratio;
    			$h = $orig_h * $ratio;
    		}
     
    		if($w>$orig_w || $h>$orig_h) { // si agrandissement
    			$w = $orig_w;
    			$h = $orig_h;
    		}
    		return array(round($w), round($h));
    	}
     
    	function echoResized($source, $w, $h) {
    		if(!file_exists($source)) return false;
    		list($sw, $sh) = getimagesize($source);
    		list($tw, $th) = images::getAdjustedSize($sw, $sh, $w, $h);
    		$pi = pathinfo($source);
    		$type = strtolower($pi['extension']);
    		switch($type) 
    		{
    		  case 'jpg':
    			$srcImg = ImageCreateFromJPEG($source);
    			$im=ImageCreateTrueColor($tw, $th); 
    			ImageCopyResampled($im,$srcImg,0,0,0,0,$tw,$th,$sw,$sh); 
    		    header("Content-type: image/jpeg");
    			$r = @ImageJPEG($im, '' ,80); 
    			ImageDestroy($im);
    			return $r;
    		  case 'gif':
    			$srcImg = ImageCreateFromGIF($source);
    			$im=ImageCreateTrueColor($tw, $th); 
     
    			imageAlphaBlending($im, false);
    			imageSaveAlpha($im,true);
    			$transparent = imageColorAllocateAlpha($im, 255, 255, 255, 0);
    			for($y=0;$y<$th;$y++) for($x=0;$x<$tw;$x++) imageSetPixel( $im, $x, $y, $transparent );
     
    			ImageCopyResampled($im,$srcImg,0,0,0,0,$tw,$th,$sw,$sh); 
    		    header("Content-type: image/gif");
    			$r = @ImageGIF($im); 
    			ImageDestroy($im);
    			return $r;
    		  case 'png':
    			$srcImg = ImageCreateFromPNG($source);
    			$im=ImageCreateTrueColor($tw, $th); 
     
    			//imageAntiAlias($im,true);
    			imageAlphaBlending($im, false);
    			imageSaveAlpha($im,true);
    			$transparent = imageColorAllocateAlpha($im, 255, 255, 255, 0);
    			for($y=0;$y<$th;$y++) for($x=0;$x<$tw;$x++) imageSetPixel( $im, $x, $y, $transparent );
     
    			ImageCopyResampled($im,$srcImg,0,0,0,0,$tw,$th,$sw,$sh); 
    			header("Content-type: image/png");
    			$r = @ImagePNG($im); 
    			ImageDestroy($im);
    			return $r;
    		}
    		return false;
    	}	
     
    }
    ?>
    fichier: image.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    require_once('class.image.php');
    $path = $_GET['path'];
    images::echoResized('upload/'.$path, 200, 150);	
    ?>
    Et dans ta page html tu code tes images ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src='image.php?path=IM123.jpg' />
    Il faut bien sur que la lib GD soit installée, tu peux vérifier avec phpinfo()

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    merçi de ta réponse rapide ! je vais éssayer ça et te tiens au courant

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    alors voila j'ai éssayé de faire comme tu m'a dis mais cela ne fonctionne pas , je vais essayer de t'expliquer ce que j'aimerais faire ! alors j'ai une page upload pour que les membres du site puissent télécharger leurs photos cette photo viens se placer dans un dossier upload mais est aussi en base de donnée sous le champ avatar , ce que j'aimerais c'est que dans ma page index.php il s'affiche la photo des membres avec un lien permettant au visiteur d'acceder a la fiche de mes membres ! je suis nouveau en php et c'est pas si facile ! si quelqu'un peux m'aider ça serais vraiment sympa

  5. #5
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    j´ai une petite question:
    est ce que tes photos s´affichent deja et il te manque le lien pour rediriger les visiteurs sur la fiche des menbres, et si oui, ce lien devrait-il etre la photo elle-meme ou un lien a part?

    merci de pouvoir m´eclaircir a ce sujet.

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 125
    Par défaut
    bonjour , alors j'ai une page portrait.php qui affiche la photo du membre mais non redimensionné et j'aimerai pouvoir affiché plusieurs miniature sur la page index.php avec comme lien la photo !

Discussions similaires

  1. requette qui renvoi des ligne double
    Par fehmitn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/09/2004, 23h36
  2. [bioinfo] fonction qui renvoie chaîne à autre fonction
    Par perlaud dans le forum Bioinformatique
    Réponses: 11
    Dernier message: 16/07/2004, 16h06
  3. function qui renvois un objet ?
    Par mattmat dans le forum ASP
    Réponses: 4
    Dernier message: 23/04/2004, 12h35
  4. Problème requête qui renvoie plusieurs
    Par dai.kaioh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/04/2004, 11h07
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 01h13

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