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

Langage PHP Discussion :

[Upload] Calcul des dimensions pour la création d'une miniature


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut [Upload] Calcul des dimensions pour la création d'une miniature
    Je suis nul en math, c'est un fait.
    Je pensé avoir trouvé le bon algo, mais j'ai recement créer une miniature qui n'a pas répondu à mes attentes. Après avoir cherché pas mal de temps, je n'arrive pas à trouver d'ou ca peut venir.

    J'ai un formulaire qui me permet d'uploader une image et d'en créer une miniature.
    J'aimerais que cette miniature ne dépasse pas les 125px de large et 100px de haut quelque soit la dimension de l'image (pour garder les proportion)
    Donc si elle est plus large que haute, elle fera 125px et large et moins de 100px de haut.

    Pour le début, j'ai quatres variables.
    Dimension max de la miniature :
    $largeur_Max = 125; $hauteur_Max = 100;
    Dimension de l'image recu.
    $largeur_Source = XXX; $hauteur_Source=XXXX;



    <?php
    //&#160;Si&#160;la&#160;hauteur&#160;est&#160;plus&#160;grande&#160;que&#160;la&#160;largeur&#160;=>&#160;200&#160;*&#160;800
    if&#160;&#160;(&#160;$hauteur_Source&#160;<&#160;$largeur_Source&#160;)
    {&#160;&#160;&#160;&#160;&#160;&#160;
    $ratio_Dest&#160;=&#160;round($hauteur_Source&#160;/&#160;$hauteur_Max);
    &#160;&#160;&#160;&#160;&#160;&#160;
    $hauteur_Dest&#160;=&#160;$hauteur_Max;
    &#160;&#160;&#160;&#160;&#160;&#160;
    $largeur_Dest&#160;=&#160;round($largeur_Source&#160;/&#160;$ratio_Dest);
    }
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //&#160;Si&#160;la&#160;largeur&#160;est&#160;plus&#160;grande&#160;que&#160;la&#160;hauteur&#160;=>&#160;800&#160;*&#160;200
    if&#160;&#160;(&#160;$hauteur_Source&#160;>&#160;$largeur_Source&#160;)
    {&#160;&#160;&#160;&#160;&#160;&#160;
    $ratio_Dest&#160;=&#160;round($largeur_Source&#160;/&#160;$largeur_Max);
    &#160;&#160;&#160;&#160;&#160;&#160;
    $largeur_Dest&#160;=&#160;$largeur_Max;
    &#160;&#160;&#160;&#160;&#160;&#160;
    $hauteur_Dest&#160;=&#160;round($hauteur_Source&#160;/&#160;$ratio_Dest);
    }
    ?>
    On oublie pour le moment le cas : largeur_source = hauteur_source

  2. #2
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    <?php
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //&#160;Si&#160;la&#160;hauteur&#160;est&#160;plus&#160;petite&#160;que&#160;la&#160;largeur&#160;=>&#160;200&#160;*&#160;800
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    if&#160;&#160;(&#160;$hauteur_Source&#160;<&#160;$largeur_Source&#160;)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;
    $ratio_Dest&#160;=&#160;round($largeur_Source&#160;/&#160;$largeur_Max);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $largeur_Dest&#160;=&#160;$largeur_Max;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $hauteur_Dest&#160;=&#160;round($hauteur_Source&#160;/&#160;$ratio_Dest);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;
    '<br&#160;/>PREMIER&#160;test</span>
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br&#160;/>'
    .$hauteur_Source.'&#160;<&#160;'.$largeur_Source.'
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br&#160;/>Ration&#160;:&#160;'
    .$ratio_Dest.'
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$hauteur_Dest&#160;=&#160;'
    .$hauteur_Dest.'&#160;#|#&#160;$largeur_Dest&#160;=&#160;'.$largeur_Dest.'<br&#160;/>';

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //&#160;Si&#160;la&#160;hauteur&#160;est&#160;plus&#160;grande&#160;ou&#160;égale&#160;à&#160;la&#160;largeur&#160;=>&#160;800&#160;*&#160;200&#160;//&#160;200&#160;*&#160;200
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    if&#160;&#160;(&#160;$hauteur_Source&#160;>=&#160;$largeur_Source&#160;)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;
    $ratio_Dest&#160;=&#160;round($hauteur_Source&#160;/&#160;$hauteur_Max);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $hauteur_Dest&#160;=&#160;$hauteur_Max;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $largeur_Dest&#160;=&#160;round($largeur_Source&#160;/&#160;$ratio_Dest);

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;
    '<br&#160;/>DEUXIEME&#160;test
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br&#160;/>'
    .$hauteur_Source.'&#160;>&#160;'.$largeur_Source.'
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br&#160;/>Ration&#160;:&#160;'
    .$ratio_Dest.'
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$hauteur_Dest&#160;=&#160;'
    .$hauteur_Dest.'&#160;#|#&#160;$largeur_Dest&#160;=&#160;'.$largeur_Dest.'<br&#160;/>';

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}

    ?>

  3. #3
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Je n'ai pas testé, je ne sais pas si ça fonctionne

    Code php : 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
    $largeur_Max = 125;
    $hauteur_Max = 100;
    $largeur_Source = XXX;
    $hauteur_Source = XXXX;
     
    if ( $hauteur_Source > $hauteur_Max )
    {
    	$largeur_Source = round($largeur_Source * (1 - $hauteur_Max/$hauteur_Source)); // On garde les proportions donc on diminue du même pourcentage
    	$hauteur_Source = $hauteur_Max;
    }
     
    if ( $largeur_Source > $largeur_Max )
    {
    	$hauteur_Source = round($hauteur_Source * (1 - $largeur_Max/$largeur_Source));
    	$largeur_Source = $largeur_Max;
    }

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/08/2013, 21h10
  2. calculer des moyennes pour des sous groupes
    Par madib dans le forum SAS Base
    Réponses: 3
    Dernier message: 04/02/2009, 17h50
  3. Calcul des minutes pour un horaire
    Par IDE dans le forum Excel
    Réponses: 1
    Dernier message: 05/12/2008, 17h40
  4. trouver des images pour la création d'un site web
    Par adel.87 dans le forum Débuter
    Réponses: 1
    Dernier message: 26/04/2008, 11h59
  5. calculer des chiffres pour envoyer dans la bdd
    Par mecmec dans le forum Flash
    Réponses: 1
    Dernier message: 04/07/2007, 10h10

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