Page 1 sur 1

Probleme pour redimensionner image

Posté : 10 août 2005, 04:05
par muriel
Bonjour à tous,

Voilà j'ai un petit probleme j'ai reussi à trouver un morceau de code pour redimensionner mes images mais il ne marche que pour redimensionner tout un repertoire , et cela marche parfaitement, mais je voudrais pouvoir redimensionner les images pas pour tout un repertoire mais juste l'image qui est demandé.

Je vous mets en premier le code avec le redimensionnement pour tout un repertoire:
<?php
// url du fichier qui contient les images
$urlphoto = "http://www.votre-site.com/images";

// nom du répertoire qui contient les images
$nomRepertoire = "images";
if (is_dir($nomRepertoire))
{
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
{
// Hauteur de toutes les images
$h_vign = "120";
$taille = getimagesize($nomRepertoire."/".$Fichier);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/100);

echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
echo '<img src="', $urlphoto, '/',$Fichier, '" ';
echo "width='$l_vign' height='$h_vign'>";
echo "</a>&nbsp;";
}
}
closedir($dossier);
}else{
echo' Le répertoire spécifié n\'existe pas';
}
?>



je vous mets maintenant mon code ou je voudrais inserer la meme chose mais sur ume image qui a été appelé:

<?
// connection à la base de données
mysql_connect("localhost","root","");
mysql_select_db("test");

$req = mysql_query("SELECT * FROM annonces WHERE id ='$id'");
$res = MYSQL_NUM_ROWS($req);

while ($res!=$i)
{
$id=mysql_result($req,$i,"id");
$image = mysql_result($req,$i,"image");

if ($image =="" ){ $img="";}
else {$img="<img src='images_upload/$image'>";}
?>


<?php echo $img; ?>

<?php
$i++;
}

mysql_close();
?>



En esperant avoir été comprehensible,
d'avance merci à tous ceux qui pourront m'aider
muriel

Posté : 10 août 2005, 07:51
par Manio 54
J'ai bien un code juste pour une image
<?php
function redimensioner ($adresse, $largeurmax, $hauteurmax)
{
$ext = strrchr($adresse,'.');
     $ext = substr($ext,1);
     $ext = strtolower($ext);
	 
	 if ($ext !== 'gif' AND $ext !== 'jpg' AND $ext !== 'jpeg' AND $ext !== 'png') return FALSE;
	 
   if ($ext == 'gif')                   $res1 = imagecreatefromgif($adresse);
   if ($ext == 'jpg' || $ext == 'jpeg') $res1 = imagecreatefromjpeg($adresse);
   if ($ext == 'png')                   $res1 = imagecreatefrompng($adresse);
$largeur = imagesx($res1);
$hauteur = imagesy($res1);

   $rx = $largeurmax / $largeur;
   $ry = $hauteurmax / $hauteur;
   
   $r0 = ($rx < $ry) ? $rx : $ry ;
   
    $x2 = $largeur * $r0;
   $y2 = $hauteur * $r0;
   $res2 = imagecreatetruecolor($x2,$y2);
   imagecopyresized($res2,$res1,0,0,0,0,$x2,$y2,$largeur,$hauteur);
   imagedestroy($res1);
   if ($ext == 'gif')                   $reussi = imagegif($res2,$adresse);
   if ($ext == 'jpg' || $ext == 'jpeg') $reussi = imagejpeg($res2,$adresse);
   if ($ext == 'png')                   $reussi = imagepng($res2,$adresse);
   imagedestroy($res2);
   return $reussi;
   }
   ?>
Ce que tu fais tu mets sa dans un inc que tu mets dans le dossier de tes images et après tu as juste a mettre l'adresse de l'image et les dimensions voulues !!!

bonne continuation !!!

Re: Probleme pour redimensionner image

Posté : 10 août 2005, 07:58
par minichette
tu met qq de ce type :

Code : Tout sélectionner

[color=red]// connection à la base de données[/color] mysql_connect("localhost","root",""); mysql_select_db("test"); $req = mysql_query("SELECT * FROM annonces WHERE id ='$id'"); $res = MYSQL_NUM_ROWS($req); while ($res!=$i) { $id=mysql_result($req,$i,"id"); $image = mysql_result($req,$i,"image"); if ($image =="" ){ $img="";} else { $cheminphoto= "";[color=red]// nom du champs de la base de donnée ou est ton imazge[/color] $urlphoto = "";[color=red] //Nom du répertoire ou est l'image[/color] [color=red]//afficher l'image en miniature[/color] $h_vign = "50"; $taille = getimagesize($nomRepertoire."/".$cheminphoto); $reduc = floor(($h_vign*100)/($taille[1])); $l_vign = floor(($taille[0]*$reduc)/100); echo '<img src="', $urlphoto, '/',$cheminphoto, '" '; echo "width='$l_vign' height='$h_vign' ALIGN='middle'"; echo "</td>"; } }


désolée s'il y a des fautes mais dans l'esprit c'est ça.

Posté : 10 août 2005, 08:52
par cyrill
l'esprit est pas mal deja lol :wink:

Posté : 10 août 2005, 16:53
par muriel
bonjour à tous,

Merci à Manio 54 et minichette pour vos reponses, ça marche parfaitement bien avec le code de minichette pour le code de manio 54 j'avoue ne pas avoir essayé cela me paraissait trop compliqué, desolée je ne suis qu'une debutante en php.
Je vous donne le code comme il marche chez moi car j'ai du faire 1 modification pas trop compliqué puisque le plus dur minichette l'a fait, ça peut toujours servir pour d'autres.

// connection à la base de données
mysql_connect("localhost","root","");
mysql_select_db("immobilier");

$req = mysql_query("SELECT * FROM annonces WHERE id ='$id'");
$res = MYSQL_NUM_ROWS($req);

while ($res!=$i)
{
$id=mysql_result($req,$i,"id");
$image = mysql_result($req,$i,"image");

if ($image =="" ){ $img="";}

else {

$cheminphoto= "$image";// nom du champs de la base de donnée ou est ton imazge[/color]
$urlphoto = "images_upload/"; //Nom du répertoire ou est l'image[/color]
$h_vign = "50";
$taille = getimagesize($urlphoto."/".$cheminphoto);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/100);
echo '<img src="', $urlphoto, '/',$cheminphoto, '" ';
echo "width='$l_vign' height='$h_vign' ALIGN='middle'";
echo "</td>";
}




$i++;
}

mysql_close();
?>

encore merci à tous et tout particulierement à minichette

muriel

Posté : 10 août 2005, 18:01
par Manio 54
donc tu peux mettre le resolu !!!

Posté : 10 août 2005, 19:33
par Invité
juste une derniere petite chose j'ai rajouté à mon code cette ligne:

echo '<a target="_blank" href="', $urlphoto,$cheminphoto, '">';

pour pouvoir cliquer sur l'image et l'avoir en grand mais comment faire pour que à la place d'avoir une nouvelle fenetre je puisse avoir un popup qui s'ouvre au dimension que j'aurai choisi ?

je vous redonne mon code au complet:

// connection à la base de données
mysql_connect("localhost","root","");
mysql_select_db("immobilier");

$req = mysql_query("SELECT * FROM annonces WHERE id ='$id'");
$res = MYSQL_NUM_ROWS($req);

while ($res!=$i)
{
$id=mysql_result($req,$i,"id");
$image = mysql_result($req,$i,"image");

if ($image =="" ){ $img="";}

else {

$cheminphoto= "$image";// nom du champs de la base de donnée ou est ton imazge[/color]
$urlphoto = "images_upload/"; //Nom du répertoire ou est l'image[/color]
$h_vign = "50";
$taille = getimagesize($urlphoto."/".$cheminphoto);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/100);
echo '<a target="_blank" href="', $urlphoto,$cheminphoto, '">';
echo '<img src="', $urlphoto, '/',$cheminphoto, '" ';
echo "width='$l_vign' height='$h_vign' ALIGN='middle'";
echo "</td>";
}

$i++;
}

mysql_close();
?>


en esperant ne pas abuser,
encore merci pour votre aide
muriel

Posté : 10 août 2005, 20:10
par Cyrano
Modération : Muriel : Prière de lire les règles du forum, en particulier la première ligne de l'article 3 !

Posté : 11 août 2005, 05:57
par Invité
oupss !!! desolée je ferme le topic

encore merci pour votre aide

[Résolu]

[Résolu] Probleme pour redimensionner image

Posté : 11 août 2005, 05:58
par Invité
Bonjour à tous,

Voilà j'ai un petit probleme j'ai reussi à trouver un morceau de code pour redimensionner mes images mais il ne marche que pour redimensionner tout un repertoire , et cela marche parfaitement, mais je voudrais pouvoir redimensionner les images pas pour tout un repertoire mais juste l'image qui est demandé.

Je vous mets en premier le code avec le redimensionnement pour tout un repertoire:
<?php
// url du fichier qui contient les images
$urlphoto = "http://www.votre-site.com/images";

// nom du répertoire qui contient les images
$nomRepertoire = "images";
if (is_dir($nomRepertoire))
{
$dossier = opendir($nomRepertoire);
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
{
// Hauteur de toutes les images
$h_vign = "120";
$taille = getimagesize($nomRepertoire."/".$Fichier);
$reduc = floor(($h_vign*100)/($taille[1]));
$l_vign = floor(($taille[0]*$reduc)/100);

echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
echo '<img src="', $urlphoto, '/',$Fichier, '" ';
echo "width='$l_vign' height='$h_vign'>";
echo "</a>&nbsp;";
}
}
closedir($dossier);
}else{
echo' Le répertoire spécifié n\'existe pas';
}
?>



je vous mets maintenant mon code ou je voudrais inserer la meme chose mais sur ume image qui a été appelé:

<?
// connection à la base de données
mysql_connect("localhost","root","");
mysql_select_db("test");

$req = mysql_query("SELECT * FROM annonces WHERE id ='$id'");
$res = MYSQL_NUM_ROWS($req);

while ($res!=$i)
{
$id=mysql_result($req,$i,"id");
$image = mysql_result($req,$i,"image");

if ($image =="" ){ $img="";}
else {$img="<img src='images_upload/$image'>";}
?>


<?php echo $img; ?>

<?php
$i++;
}

mysql_close();
?>



En esperant avoir été comprehensible,
d'avance merci à tous ceux qui pourront m'aider
muriel

Posté : 11 août 2005, 06:09
par Invité
je suis desolée mais je ne sais pas ou est le bouton mettre Résolu, j'ai bien parcouru tout le reglment et suivi à la lettre ce qu'il disait:

(Cette opération est possible grâce à un bouton se situant dans la partie supérieure du sujet)

mais j'avoue qu'en desespoir de cause je reviens vers vous pour que vous puissiez me dire ou se situe ce bouton?

d'avance je vous remercie, en esperant ne pas etre mise à l'ecart de ce super forum qui m'aide beaucoup.
muriel