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] créer une miniature et l'afficher


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut [GD] créer une miniature et l'afficher
    bonjour à tous

    je recherche quelque chose qui a l'air assez simple pourtant je ne trouve rien de vraiment intéressant à ce sujet
    je fais dans une boucle un affichage d'image qui viennent d'un site de mon boulot
    auparavant je regardais si l'image était existante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($ewp->url_exists("http://www.xxx.com/xxx/pdt/".$o->id.".jpg"))
    		{
    			$tailles			=		getImageSize("http://www.xxx.com/xxx/pdt/".$o->id.".jpg");
     
    			if ($tailles[0] > $tailles[1])//en longueur ou carré
    				$size	=	"width='100'";
    			else//en hauteur
    				$size	=	"height='95'";
     
    			$image		=	'						<img '.$size.' src="http://www.xxx.com/xxxx/pdt/'.$o->id.'.jpg" alt="'.$o->libelle.'" border="0" /></a>';
    		}
    or ses images vont servir sur un 2e site et je ne veux pas que les gens voient la source avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img '.$size.' src="http://www.xxx.com/xxxx/pdt/'.$o->id.'.jpg" alt="'.$o->libelle.'" border="0" />
    mais plutot du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="monImage.php?id=5" />
    pour celà je cherche donc dans ma page monImage.php à récupérer l'image qui m'intéresse, à la redimensionner (si possible autrement qu'en changeant le width et le height, comme ca la qualité sera meilleure) et à l'afficher dans la foulée, sans la stocker dans un quelconque dossier. C'est juste de l'affichage que je veux

    Si vous avez une piste je suis preneur

    Merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Pour afficher l'image via un script PHP :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    header('Content-type: image/jpg');
    header('Content-Disposition: attachment;filename="nom_du_fichier_pour_telechargement.jpg"');
    header('Cache-Control: no-cache, must-revalidate'); 
    readfile('url_de_mon_mage.jpg');
    seul le 1er header est obligatoire.

    Pour le redimensionnement, un copier coller d'un p'tit script à moi qui redimensionne de façon symétrique en ajustant la taille de la vignette sur la valeur maximale de $t_width ou $t_height :

    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
    function ImageResize($pImage, $t_width, $t_height) 
    {
            $iCanvas = @ImageCreateTrueColor($t_width, $t_height);
            $s_width = ImageSX($pImage);
            $s_height = ImageSY($pImage);
            ImageCopyResampled($iCanvas, $pImage, 0, 0, 0, 0, $t_width, $t_height, $s_width, $s_height);
            return $iCanvas;
    }
     
    function Vignette($source, $destination, $x = 100, $y = 100) // réduction sans dénaturation de l'image
    {
            $img = imagecreatefromjpeg($source);
    		if(!$img) return false;
            $xx = ImageSX($img);
            $yy = ImageSY($img);
            if($xx / $yy > $x / $y)
            { // réduction sur X
                    $f = $y / $xx; 
                    $rX = $xx * $f;
                    $rY = $yy * $f;
            }
            else
            { // réduction sur Y
                    $f = $x / $yy; 
                    $rX = $xx * $f;
                    $rY = $yy * $f;        
            }
            imagejpeg(ImageResize($img, $rX, $rY), $destination);
    }
    Par contre, j'avais une version qui avait un bug, j'espere que celle là est la version débuggé, j'ai pas vérifié...

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

Discussions similaires

  1. Créer une miniature d'une balise div
    Par RyzenOC dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 15/11/2014, 15h02
  2. [Joomla!] Créer une table et l'afficher dans Joomla sous forme de tableau
    Par sago974 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 23/02/2009, 16h34
  3. Réponses: 9
    Dernier message: 20/09/2008, 21h56
  4. Afficher une miniature en avant-plan
    Par francoisch dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2008, 10h36
  5. Réponses: 1
    Dernier message: 23/04/2007, 10h23

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