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] Redimmensionner et rogner une image


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut [GD] Redimmensionner et rogner une image
    Bonjour,

    J'utilise Gd pour générer des miniatures a la volée. Je fourni la hauteur et la largeur et pouf, ça me crée une miniature qui a la bonne taille. Mais tout n'est pas rose ... en effet, ma miniature est déformée par rapport a l'originale. Dans notre cas, j'aimerai que l'image soit redimensionnée PUIS rognée (ou avec des bandes dans le cas d'images ayant des formes bizarroïdes).

    Le soucis, c'est que je bloque completement, ma vision dans l'espace est surement altérée par le temps que je passe devant mon pc, en tous cas, je n'arrive pas a correctement imaginer le traitement ... Et j'aurai bien besoin d'une petite piste .

    Voila ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $largeur = 250;
    $hauteur = 200;
     
    $image = imagecreatefromjpeg("monImage.jpg");
    $taille = getimagesize($image);
     
    $sortie = imagecreatetruecolor($largeur,$hauteur);
     
    imagecopyresampled($sortie,$image,0,0,0,0,$largeur,$hauteur,$taille[0],$taille[1]);
     
    header("Content-type: image/jpeg");
    imagejpeg($sortie,NULL,100);
    Ce que j'ai, c'est un redimensionnement simple, j'ai essaye des trucs, mais ça m'a completement embrouille la tête ...

    Pour info, pour rogner l'image, il suffit de mettre une image plus grande dans un "conteneur" (ici c'est $sortie), si l'image ne "recouvre" pas tout le conteneur, le reste sera rempli de noir, c'est le traitement normal. Le positionnement de l'image se fait par : imagecopyresampled($sortie,$image,0,0,0,0,$largeur,$hauteur,$taille[0],$taille[1]); (ce que j'ai mis en gras). Ce sont les calculs de tailles qui me posent probleme, je suis perdu dans les conditions et les calculs ...

    D'avance merci pour votre soutien ^^
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    C'est peut-être cela que tu veux ?
    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
    <?php
    $largeur = 250;
    $hauteur = 200;
     
    $image = imagecreatefromjpeg('monImage.jpg');
    $taille = getimagesize('monImage.jpg');
     
    $sortie = imagecreatetruecolor($largeur,$hauteur);
     
    $coef = min($taille[0]/$largeur,$taille[1]/$hauteur);
     
    $deltax = $taille[0]-($coef * $largeur); 
    $deltay = $taille[1]-($coef * $hauteur);
     
    imagecopyresampled($sortie,$image,0,0,$deltax/2,$deltay/2,$largeur,$hauteur,$taille[0]-$deltax,$taille[1]-$deltay);
     
    header('Content-type: image/jpeg');
     
    imagejpeg($sortie,NULL,100);
    Fred

  3. #3
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    C'est pas mal oui merci

    Je pensais a un truc qui inclurai des bandes pour des ratios particuliers, dans le cas ou on redimensionnerai une image 200x200 en 20x150, mais c'est sans compter sur le bon sens du développeur, on va lui accorder une certaine confiance, et s'arrêter la, c'est déjà suffisant

    Merci merci merci ...

    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


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

Discussions similaires

  1. Rogner une image
    Par Invité(e) dans le forum Applets
    Réponses: 1
    Dernier message: 13/05/2008, 16h17
  2. Macro pour rogner une image
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/08/2007, 22h57
  3. Rogner une image
    Par biquet dans le forum Images
    Réponses: 4
    Dernier message: 11/01/2007, 11h47
  4. Rogner une image jpeg ou bmp
    Par Valeyre dans le forum Langage
    Réponses: 10
    Dernier message: 18/10/2005, 11h01
  5. recadrer (rogner) une image
    Par prodi_64 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/10/2004, 11h57

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