Calcul d'un "ratio" pour l'affichage d'une image
Hors ligneKefren Le 17/07/2008 à 17:07 Profil de Kefren Configuration de Kefren

Bonjour, pour des soucis de présentation, je souhaiterai récupérer la taille d'une image .jpg pour pouvoir ainsi faire  un calcul pour un affichage qui conserve les proportion de l'image.

Donc comment puis-je faire pour récupérer les valeurs concernant la taille de l'image ?
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneKdecherf Le 17/07/2008 à 18:00 Profil de Kdecherf Configuration de Kdecherf

Salut,

Il faut utiliser la fonction getimagesize().

Et pour une idée de fonction avec conservation de ratio (ce code transforme les images de plus de 100 pixels de long ou de haut) :



<?php
$infos 
= @getimagesize($_FILES['imgf']['tmp_name']);
if ($infos[1] > 100 OR $infos[0] > 100)
{
// X plus grand que Y
if ($infos[1] < $infos[0])
{
     $x = 100;
     $y = floor($x * ($infos[1]/$infos[0]));
}
// Y plus grand que X
else
{
     $y = 100;
     $x = floor($y * ($infos[0]/$infos[1]));
}
}
else
{
     $x = $infos[0];
     $y = $infos[1];
}
?>
Hors ligneKefren Le 18/07/2008 à 08:57 Profil de Kefren Configuration de Kefren

Ok merci je n'en demandais pas tant mais c parfait ;)

Nikel rien à ajouter, je te confirme ca une fois placé

bon c'est parfait, au une exception que vous expliquerez surement :

j'ai insérer le morceau de code que vous m'avez apporté, j'ai pas ueu de problème concernant l'indication de la photo à traiter, cependant le même morceau de code, ne fonctionne plus sur une page différente qui se trouve pourtant dans le même dosier que la page ou ça fonctionne


<?php

$photo 
"photo/".$tableau['reference_art'].".jpg";

if(
file_exists($photo))
{
     

$infos 
= @getimagesize($photo$_FILES['imgf']['tmp_name']);
          
if ($infos[1] > 400 OR $infos[0] > 400)
{

// X plus grand que Y

if ($infos[1] < $infos[0])
{

$x 400;
$y floor($x * ($infos[1]/$infos[0]));

}

// Y plus grand que X
else

{

$y 400;
$x floor($y * ($infos[0]/$infos[1]));

}

}
else
{

$x $infos[0];
$y $infos[1];

}
     
echo '<img src="'.$photo.'" width="'.$x.'" height="'.$y.'">';

}

else

{

echo 
'<img src="/photo/nondispo.gif">';

}

?>
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneTrepied Le 19/07/2008 à 10:29 Profil de Trepied Configuration de Trepied

Dr_Chacalux
Salut...

$infos = @getimagesize($photo, $_FILES['imgf']['tmp_name']); 

se refère à une image uploadée depuis un formulaire de la première page j'imagine, cette variable n'est vraissemblablement plus la bonne.
--
Computers are like air conditioners, they are useless when you open Windows.
Hors ligneKefren Le 19/07/2008 à 11:44 Profil de Kefren Configuration de Kefren

Erf non je récupère les info de la taille comme ça :


<?php
$infos 
= @getimagesize($photo);
?>


jusque ici tout va bien, et j'affiche ma photo comme ceci :


<?php
echo '<img src="'.$photo.'" width="'.$x.'" height="'.$y.'">';
?>


et c'est la que ça ne va plus :s
pourtant la page se trouve dans le même dossier que la précédente, mais elle ne s'affiche plus, pourtant je change uniquement la taille d'affichage, le chemin pour la photo est correct, je ne comprend pas :s
j'ai aussi regarder la syntaxe pour voir si je n'avais pas d'erreur .. mais j'ai fait un copié coller de cette même fonction j'ai juste changé mes valeurs d'affichage pour le redimensionnement
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneKdecherf Le 19/07/2008 à 12:54 Profil de Kdecherf Configuration de Kdecherf

Salut, heu un point important, redimensionner comme ça c'est " dégueulasse ". Passes par GD ;-)
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels