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] imagecreatefromjpeg & getimagesize


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 129
    Par défaut [GD] imagecreatefromjpeg & getimagesize
    voilà : j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    function getVignette($id) {
    	$id = intval($id);
    	$file = "photo.php?id=$id"; 
    	$image = imagecreatefromjpeg($file);
    	$details = getimagesize($file);
    	$s = ($details[0]>$details[1])?'width="100"':'height="100"';
    	$s = '<img src="photo.php?id='.$id.'" '.$s.'>';
    	return $s;
    }
    ?>
    et voici : photo.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
    <?php
    if (isset($_GET['id'])) {
      $id = intval($_GET['id']);
      include("connexion.php");
      $req = "SELECT photo_blob, photo_type FROM produits WHERE id = ".$id;
      $ret = mysql_query($req) or die (mysql_error());
      $col = mysql_fetch_row($ret);
     
      if (!$col[0]) {
        echo "Id d'image inconnu";
      } else {
        header("Content-type: ".$col[1]);
        echo $col[0];
      }
    } else {
      echo "Mauvais Id d'image";
    }
    ?>
    et j'a le message :

    Warning: imagecreatefromjpeg(photo.php?id=13): failed to open stream: No such file or directory in includes/functions.inc.php on line 4

    Warning: getimagesize(photo.php?id=13): failed to open stream: No such file or directory in includes/functions.inc.php on line 5

    Ce que je veux faire : récupérer la taille de l'image en BD et la faire tenir dans un carré de 100*100 grâce aux redimenssionements de la balise html <img>

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Citation Envoyé par jpean.net
    Ce que je veux faire : récupérer la taille de l'image en BD et la faire tenir dans un carré de 100*100 grâce aux redimenssionements de la balise html <img>
    Bonjour,

    Pourquoi ne fais tu pas simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src"..." width="100" height="100">
    Puisque tu veux qu'elle ait cette dimension ??

    Tu n'as pas besoin de connaitre sa taille de départ puisqu'à la fin elle devra faire 100*100

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <?php
    function getVignette($id) {
    $id = intval($id);
    $file = "photo.php?id=$id"; 
    return "<img src='".$file."'  width='100' height='100'>";
    }
    ?>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 129
    Par défaut
    parce que si l'image de départ (je prends l'extrême) a une dimension de 100*400, elle sera complêtement déformée.

    donc j'aimerai garder les proportion sans que ça dépasse 100*100

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    oui, mais le code que tu as posté ne disait pas ça .

    il faut utiliser imagecopyresampled() :
    Citation Envoyé par DocPHP
    Exemple 2. Redimensionnement proportionnel d'une image
    Cet exemple affichera une image avec une largeur ou une hauteur maximale de 200 pixels.

    <?php
    // Le fichier
    $filename = 'test.jpg';

    // Définition de la largeur et de la hauteur maximale
    $width = 200;
    $height = 200;

    // Content type
    header('Content-type: image/jpeg');

    / Cacul des nouvelles dimensions
    list($width_orig, $height_orig) = getimagesize($filename);

    $ratio_orig = $width_orig/$height_orig;

    if ($width/$height > $ratio_orig) {
    $width = $height*$ratio_orig;
    } else {
    $height = $width/$ratio_orig;
    }

    // Redimensionnement
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

    //Affichage
    imagejpeg($image_p, null, 100);
    ?>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 129
    Par défaut je peux me tromper mais
    ce n'est pas ce que font ces lignes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $details = getimagesize($file);
    $s = ($details[0]>$details[1])?'width="100"':'height="100"';
    $s = '<img src="photo.php?id='.$id.'" '.$s.'>';

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    non, là tu redimensionnes la largeur ou la hauteur. Mais pas proportionnellement. Tu peux donc te retrouver avec une image de 400 * 100 ou de 100 * 400

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

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