Probleme pour redimensionner image

muriel
Invité n'ayant pas de compte PHPfrance

10 août 2005, 04:05

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

Eléphant du PHP | 199 Messages

10 août 2005, 07:51

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 !!!

Petit nouveau ! | 5 Messages

10 août 2005, 07:58

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.

Eléphant du PHP | 75 Messages

10 août 2005, 08:52

l'esprit est pas mal deja lol :wink:
http://cyrill.skyblog.com ===> mon blog

Petit projet en php fais de moi meme :-)

http://sites.neeweb.com/cyrill/

muriel
Invité n'ayant pas de compte PHPfrance

10 août 2005, 16:53

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

Eléphant du PHP | 199 Messages

10 août 2005, 18:01

donc tu peux mettre le resolu !!!

Invité
Invité n'ayant pas de compte PHPfrance

10 août 2005, 19:33

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

Mammouth du PHP | 19672 Messages

10 août 2005, 20:10

Modération : Muriel : Prière de lire les règles du forum, en particulier la première ligne de l'article 3 !
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

11 août 2005, 05:57

oupss !!! desolée je ferme le topic

encore merci pour votre aide

[Résolu]

Invité
Invité n'ayant pas de compte PHPfrance

11 août 2005, 05:58

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

Invité
Invité n'ayant pas de compte PHPfrance

11 août 2005, 06:09

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