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 :

[ImageMagick] Fonction qui redimensionne une image


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut [ImageMagick] Fonction qui redimensionne une image
    Salut à tous, j'ai une fonction qui permet de redimensionner une image stocké sur le sevreur, elle la redimensionne, baisse le poids,.

    Le problème que j'ai c'est qu'elle dessature l'image, , tandis que le redimensionnement a lieu, l'anregistrement dans le dossier de destination, l'ecrasement de l'original, berf tout marche, sauf que des que la fonction est lancée, en sortie j'ai ma photo redimensionnée, MAIS déssaturer
    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
     
     
    function modif_image($img_source,$img_destination,$largeur,$longueur) {
       // Lit les dimensions de l'image
       $size = getimagesize($img_source);  
       $src_w = $size[0];
       $src_h = $size[1];  
       // Teste les dimensions tenant dans la zone
       $test_h = round(($largeur / $src_w) * $src_h);
       $test_w = round(($longueur / $src_h) * $src_w);
       // Si Height final non précisé (0)
       if(!$longueur) $longueur = $test_h;
       // Sinon si Width final non précisé (0)
       elseif(!$largeur) $largeur = $test_w;
       // Sinon teste quel redimensionnement tient dans la zone
       elseif($test_h>$longueur) $largeur = $test_w;
       else $longueur = $test_h;
     
       // La vignette existe ?
       $test = (file_exists($img_destination));
       // L'original a été modifié ?
       if($test)
          $test = (filemtime($img_destination)>filemtime($img_source));
       // Les dimensions de la vignette sont correctes ?
       if($test) {
          $size2 = getimagesize($img_dest);
          $test = ($size2[0]==$dst_w);
          $test = ($size2[1]==$dst_h);
       }
     
       // Créer la vignette ?
       if(!$test) {
          // Crée une image vierge aux bonnes dimensions
          $creation_im_vierge= imagecreate($largeur,$longueur);
          // Copie dedans l'image initiale redimensionnée
          $copier_dans_im = imagecreatefromjpeg($img_source);
     
     
     
          imagecopyresized($creation_im_vierge, $copier_dans_im,0,0,0,0,$largeur,$longueur,$src_w,$src_h);
          // Sauve la nouvelle image
          imagejpeg($creation_im_vierge,$img_destination);
          // Détruis les tampons
          imagedestroy($creation_im_vierge);  
          imagedestroy( $copier_dans_im);
       }
     
       // Affiche le descritif de la vignette
       echo "SRC='".$img_destination."' WIDTH=".$largeur." HEIGHT=".$longueur;
    }
    j'appel comme ceci la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img <?php modif_image('images_expo/soleil.jpg','images_expo/dest/soleil.jpg','300','150'); ?>">
    Voila si quelqu'un sait pour quoi j'ai une image dessaturer qui s'enregistre et qui s'affiche

    je suis preneur

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    salut,

    peut-être que l'utilisation de ces fonctions donneront une meilleur qualité :

    imagecreatetruecolor() à la place de imagecreate()
    imagecopyresampled() à la place de imagecopyresized()

    http://fr.php.net/manual/fr/function...etruecolor.php
    http://fr3.php.net/manual/fr/functio...yresampled.php

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

Discussions similaires

  1. Fonction qui déforme une image selon les 4 points du quadrangle
    Par Darkyl dans le forum Général JavaScript
    Réponses: 39
    Dernier message: 19/06/2012, 17h10
  2. [ImageMagick] Problème dans le code pour redimensionner une image
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/06/2007, 14h06
  3. [ImageMagick] Redimensionner une image
    Par jiojioforever dans le forum Bibliothèques et frameworks
    Réponses: 26
    Dernier message: 05/02/2007, 13h07
  4. Fonction qui séléctionne une partie d'image
    Par meera dans le forum Visual C++
    Réponses: 10
    Dernier message: 07/11/2006, 17h25
  5. [ImageMagick] Redimensionner une image avant de l'enregistrer
    Par julien.63 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/05/2006, 21h01

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