Voila j'aimerai redimensionner une image sur un catalogue en ligne.
Avec firefox j'ai pas trop de problème puisque le css est bien interprété. Cela dis ce n'est pas tout à fait la même chose avec internet explorer. Du coup j'ai pris une fonction toute faite pour redimensionner les images. La fonction marche nikel.
function redimage($img_src,$img_dest,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($dst_w / $src_w) * $src_h);
$test_w = round(($dst_h / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$dst_h) $dst_h = $test_h;
// Sinon si Width final non précisé (0)
elseif(!$dst_w) $dst_w = $test_w;
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$dst_h) $dst_w = $test_w;
else $dst_h = $test_h;
// La vignette existe ?
$test = (file_exists($img_dest));
// L'original a été modifié ?
if($test)
$test = (filemtime($img_dest)>filemtime($img_src));
// Les dimensions de la vignette sont correctes ?
if($test) {
$size2 = GetImageSize($img_dest);
$test = ($size2[0]==$dst_w);
$test = ($size2[1]==$dst_h);
}
// Créer la vignette ?
if(!$test) {
// Crée une image vierge aux bonnes dimensions
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
// Copie dedans l'image initiale redimensionnée
$src_im = ImageCreateFromJpeg($img_src);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
// Sauve la nouvelle image
ImageJpeg($dst_im,$img_dest);
// Détruis les tampons
ImageDestroy($dst_im);
ImageDestroy($src_im);
}
Affiche le descritif de la vignette
echo "SRC='".$img_dest."' WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
Maintenant j'aimerai me servir de cette fonction pour mon catalogue en ligne. Chaque produit est stocké dans un tableau, ensuite je fais un foreach pour afficher tous les éléments du tableau. Je ne veux pas surcharger la page donc voila juste la partie qui ne marche pas foreach($prod as $value){
//===ici chaque produit ========
$html = "
...
<img src='upload/".redimage($prod[$fiche]['img_prod'].",upload/tmp/".$prod[$fiche]['img_prod']."",300,300)."' border=0 class=visu_img
>";
...
//===fin produit =============
//$html .=$prod[2]['nom_prod'];
echo $html;
$fiche++;
//fin foreach
}
Je n'arrive pas à mettre la fonction sans que ca me retourne une erreur de sythaxe.
Je suis un peu perdu entre les guillemets et les simples quote. J'espere m'etre fait comprendreWarning: Missing argument 4 for redimage()