Script de redimensionnement photos/images
10 messages
• Page 1 sur 1
-

maniT4c - WRInaute impliqué

- Messages: 528
- Inscription: 28 Jan 2005
si ca peut aider:
http://www.wikistuce.info/doku.php/php/ ... res_images
http://www.wikistuce.info/doku.php/php/ ... res_images
-

beber24 - WRInaute occasionnel

- Messages: 260
- Inscription: 3 Fév 2006
Merci DD32 !!!
le premier est presque parfait sauf que je n'arrive pas mettre plus que 300 ko en upload ... Y a t'il une solution pour augmenter ? Encore merci DD32 !
le premier est presque parfait sauf que je n'arrive pas mettre plus que 300 ko en upload ... Y a t'il une solution pour augmenter ? Encore merci DD32 !
- Code: Tout sélectionner
<?
/*
Générateur de vignettes en PHP - v1.2
Didier - www.ASP-PHP.net
*/
// GESTION DU TÉLÉCHARGEMENT
if(!empty($_GET["dwn"])) {
if(!strpos(" ".$_GET["dwn"],"..")) { // protection ;)
header("content-type: application/octet-stream");
$f = substr($_GET["dwn"],strrpos($_GET["dwn"],"/")+1);
header("Content-Disposition: attachment; filename=".$f);
flush(); // Envoie le buffer
readfile($_GET["dwn"]);
}
// CREATION DE LA VIGNETTE
} else {
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 = ImageCreate($dst_w,$dst_h);
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
// Copie dedans l'image initiale redimensionnée
$src_im = ImageCreateFromJpeg($img_src);
// ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
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."?t=".time()."' WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
// AFFICHAGE DE LA PAGE
?><HTML><HEAD><TITLE>Générateur de vignettes</TITLE>
<STYLE>
td,input { font:normal 8pt Verdana }
</STYLE>
</HEAD><BODY bgcolor=#FFFFFF>
<center><table width=100% height=100%><tr>
<td align=center>
<font size=4>Désignez une image .JPG</font> <i>(300 Ko max.)<br>
<? // GESTION DE L'UPLOAD
$rep="./"; // Répertoire de stockage (doit avoir les droits d'écriture ! CHMOD)
$f = $rep."original.jpg"; // path du fichier original
if(isset($_FILES['photo'])) {
if($_FILES['photo']['size']>0) {
if(strtolower(substr($_FILES['photo']['name'],-4))!=".jpg") { ?>
<b>Ce n'était pas un .JPG !</b>
<? } elseif (!move_uploaded_file($_FILES['photo']['tmp_name'], $f)) { ?>
<b>Erreur d'enregistrement !</b>
<? }
} else { ?>
<b>Trop gros fichier !</b>
<? }
}?>
<table><FORM METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>>
<tr><td align=center><INPUT TYPE=FILE NAME="photo"></td></tr>
<tr><td align=center><INPUT TYPE=SUBMIT value="Générer la vignette"></td></tr>
</FORM></table>
<? // AFFICHAGE DE LA VIGNETTE ET DES INFOS
$f2 = $rep."vignette.jpg"; // path de la vignette
$largeur=150; if(!empty($_GET["largeur"])) $largeur = $_GET["largeur"];
$hauteur=150; if(!empty($_GET["hauteur"])) $hauteur = $_GET["hauteur"];
if(file_exists($f)) { ?>
<table border=0 cellspacing=5 cellpadding=0><tr>
<td>
<center><b>Original</b></center><br>
Poids : <?echo round(filesize($f)/1024)?> Ko<br>
Taille : <?
$size = GetImageSize($f);
echo $size[0]."x".$size[1]; ?><br>
<br><center>
<A href="vignette.php?dwn=<?echo $f?>">Télécharger</A>
</center>
</td><td align=center>
<IMG <? redimage($f,$f2,$largeur,$hauteur)?>>
</td><td>
<center><b>Vignette</b></center><br>
Poids : <?echo round(filesize($f2)/1024)?> Ko<br>
Taille : <?
$size = GetImageSize($f2);
echo $size[0]."x".$size[1]; ?><br>
<br><center>
<A href="vignette.php?dwn=<?echo $f2?>">Télécharger</A>
</center>
</td>
</tr><tr>
<? // CHOIX DES DIMENSIONS DE LA VIGNETTE
?>
<form><td colspan=3 align=center>
<table><tr>
<td>Largeur :</td>
<td><select name="largeur">
<?for($i=10;$i<=150;$i+=10) {
echo "<option";
if($i==$largeur) echo " SELECTED";
echo ">".$i."</option>\n";
} ?>
</select></td>
<td>Hauteur :</td>
<td><select name="hauteur">
<?for($i=10;$i<=150;$i+=10) {
echo "<option";
if($i==$hauteur) echo " SELECTED";
echo ">".$i."</option>\n";
} ?>
</select></td>
<td><input type=submit value=Modifier></td>
</td></form>
</tr></table>
<? } ?>
</td>
</tr></table></center>
</BODY></HTML><?
} ?>
-

beber24 - WRInaute occasionnel

- Messages: 260
- Inscription: 3 Fév 2006
Oui
J'ai essayer de modifier evidemment la ligne :
en mettant 3000 par exemple mais je tombe en erreur :
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in /..../redim.php on line 55
J'ai essayer de modifier evidemment la ligne :
- Code: Tout sélectionner
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>>
en mettant 3000 par exemple mais je tombe en erreur :
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in /..../redim.php on line 55
- ACth
- WRInaute impliqué

- Messages: 795
- Inscription: 11 Nov 2006
-
Voila une page sur la gestion de chargement de fichiers qui est très explicite.
Ainsi tu devrais pouvoir "maitriser" ton sujet.
La documentation de PHP est vraiment très bien faite, tu y apprends beaucoup,
notamment grâce aux exemples et / ou commentaires.
Bonne chance.
Voila une page sur la gestion de chargement de fichiers qui est très explicite.
Ainsi tu devrais pouvoir "maitriser" ton sujet.
La documentation de PHP est vraiment très bien faite, tu y apprends beaucoup,
notamment grâce aux exemples et / ou commentaires.
Bonne chance.
-

beber24 - WRInaute occasionnel

- Messages: 260
- Inscription: 3 Fév 2006
En fait j'ai mis memory_limit = 32M dans php.ini max de mon hébergeur et j'ai modifié :
en
Et ainsi je peux aller jusqu'à 2MO ! C'est super je vous remercie beaucoup et hop un service de plus pour mes visiteurs !
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>>
en
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 2000*1024;?>>
Et ainsi je peux aller jusqu'à 2MO ! C'est super je vous remercie beaucoup et hop un service de plus pour mes visiteurs !
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Retouche photos et images
- Photos dans google images
- Probléme affichage images, photos
- Ressources Images Photos webmaster
- droit sur les photos/images
- Description IPTC des images ou photos
- Images/Photos : Racine du site ou Répertoire ?
- [Google Images] Photos du magazine LIFE
- Photos n'apparaissant pas dans Google Images
- php Galerie photos : Erreur upload images RESOLU
Consultez la description détaillée des produits ou services de Google suivants : Hello
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


