| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
beber24 WRInaute occasionnel

Inscrit le: 03 Fév 2006 Messages: 173 Localisation: Segonzac (au fond du Perigord)
|
Posté le : Mer Fév 21, 2007 19:41 Sujet du message: Script de redimensionnement photos/images |
|
|
Bonjour à tous,
Je cherche un script permettant de redimensionner à la volée les photos exactement comme cette page :
*ww.webmycar.net/myscripts/image-reduction.php
Ca existe ? |
|
| |
|
 |
dd32 Modérateur

Inscrit le: 09 Sep 2005 Messages: 3076 Localisation: Witamine d'abord !
|
|
| |
|
 |
maniT4c WRInaute impliqué

Inscrit le: 28 Jan 2005 Messages: 491
|
|
| |
|
 |
beber24 WRInaute occasionnel

Inscrit le: 03 Fév 2006 Messages: 173 Localisation: Segonzac (au fond du Perigord)
|
Posté le : Jeu Fév 22, 2007 17:59 Sujet du message: Script de redimensionnement photos/images |
|
|
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: |
<?
/*
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><?
} ?> |
|
|
| |
|
 |
ACth WRInaute passionné

Inscrit le: 11 Nov 2006 Messages: 795
|
Posté le : Jeu Fév 22, 2007 18:53 Sujet du message: Script de redimensionnement photos/images |
|
|
| As-tu cherché à comprendre un petit peu le système ? |
|
| |
|
 |
beber24 WRInaute occasionnel

Inscrit le: 03 Fév 2006 Messages: 173 Localisation: Segonzac (au fond du Perigord)
|
Posté le : Jeu Fév 22, 2007 19:14 Sujet du message: Script de redimensionnement photos/images |
|
|
Oui
J'ai essayer de modifier evidemment la ligne :
| Code: |
| <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 passionné

Inscrit le: 11 Nov 2006 Messages: 795
|
Posté le : Jeu Fév 22, 2007 19:38 Sujet du message: Script de redimensionnement photos/images |
|
|
-
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

Inscrit le: 03 Fév 2006 Messages: 173 Localisation: Segonzac (au fond du Perigord)
|
Posté le : Ven Fév 23, 2007 12:22 Sujet du message: Script de redimensionnement photos/images |
|
|
Ok merci !
En fait il suffit d'augmenter la taille du memory_limit = 16M dans le php.ini et le tour et joué merci beaucoup à vous tous ! |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12251 Localisation: Toulouse
|
Posté le : Ven Fév 23, 2007 12:48 Sujet du message: Script de redimensionnement photos/images |
|
|
>> je n'arrive pas mettre plus que 300 ko en upload
surement une limite de ton hebergeur |
|
| |
|
 |
beber24 WRInaute occasionnel

Inscrit le: 03 Fév 2006 Messages: 173 Localisation: Segonzac (au fond du Perigord)
|
Posté le : Ven Fév 23, 2007 13:34 Sujet du message: Script de redimensionnement photos/images |
|
|
En fait j'ai mis memory_limit = 32M dans php.ini max de mon hébergeur et j'ai modifié :
| Citation: |
| <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>> |
en
| Citation: |
| <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 ! |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|