Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 09h32   #1
Membre éclairé
 
Avatar de Space Cowboy
 
Inscription : avril 2005
Messages : 495
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 495
Points : 306
Points : 306
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;



Citation:
<?php
// Si la hauteur est plus grande que la largeur => 200 * 800
if  ( $hauteur_Source $largeur_Source )
{      
$ratio_Dest round($hauteur_Source $hauteur_Max);
      
$hauteur_Dest $hauteur_Max;
      
$largeur_Dest round($largeur_Source $ratio_Dest);
}
                  
// Si la largeur est plus grande que la hauteur => 800 * 200
if  ( $hauteur_Source $largeur_Source )
{      
$ratio_Dest round($largeur_Source $largeur_Max);
      
$largeur_Dest $largeur_Max;
      
$hauteur_Dest round($hauteur_Source $ratio_Dest);
}
?>
On oublie pour le moment le cas : largeur_source = hauteur_source
Space Cowboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 12h25   #2
Membre éclairé
 
Avatar de Space Cowboy
 
Inscription : avril 2005
Messages : 495
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 495
Points : 306
Points : 306
Citation:
<?php
                                          
// Si la hauteur est plus petite que la largeur => 200 * 800
                                          
if  ( $hauteur_Source $largeur_Source )
                                          {      
$ratio_Dest round($largeur_Source $largeur_Max);
                                                
$largeur_Dest $largeur_Max;
                                                
$hauteur_Dest round($hauteur_Source $ratio_Dest);
                                                
                                                echo 
'<br />PREMIER test</span>
                                                            <br />'
.$hauteur_Source.' < '.$largeur_Source.'
                                                            <br />Ration : '
.$ratio_Dest.'
                                                            $hauteur_Dest = '
.$hauteur_Dest.' #|# $largeur_Dest = '.$largeur_Dest.'<br />';

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

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

                                          }

?>
Space Cowboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 14h04   #3
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

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

Code php :
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;
}
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h59.


 
 
 
 
Partenaires

Hébergement Web