REDIMENSION D'IMAGE AVANT L'ENVOIE AU NAVIGATEUR...
matrey
Messages postés399Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention 6 septembre 2004
-
5 avril 2003 à 14:39
drommk
Messages postés15Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention 6 janvier 2006
-
6 janv. 2006 à 12:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
drommk
Messages postés15Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention 6 janvier 2006 6 janv. 2006 à 12:19
t'as pas de problèmes avec les images de haute definition ? (genre 300 dpi) parce que j'ai écrit un script très similaire, et les miniatures pour les images à haute résolution ne marchent pas. Ca marche en local, mais en ligne ça me fait des rectangles noirs...
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 8 juin 2005 à 13:26
Salut,
Je comprend pas trop l'histoire avec $max_y
J'avait besoin de pouvoir paramétrer soit la hauteur soit la longeur sans avoir à créer 2 fichiers alors je l'ai un peu remixé et j'ai enlevé l'histoire de $max_y.
Source :
<?php
////////////////////////////////////////////////
// Coded by mmaxuel for //
// http://xportal.free.fr/imode.php //
// //
// le site imode doivent avoir des images //
// deja reduite, en effet, meme en utlisant //
// les balises //
// l'image lorsqu'elle est lu par le //
// navigateur i-mode il verifie la taille //
// et il la refuse si elle est trop grande //
// d'ou l'utilité de reduire l'image avant //
// de l'envoyer... //
// voila! //
// pour toute question: //
// rmoummed hotmail . com //
// //
// //
// //
// exemple d'utilisation: //
// vous desirez reduire l'image Bateau.jpg //
// avec une largeur de 120, la syntaxe sera //
// resizepicture.php?img=Bateau.jpg&img_x=120 //
///////////////////////////////////////////////
//on enverra au navigateur un fichier de type image au format jpeg:
header('Content-type: image/jpeg');
$img = 'Zed_Art-Digital_00059.jpeg';//Image
$img_x = 150;// Largeur de la miniature
$img_y = 150;// Hauteur de la miniature
// 0: On contrôle la largeur.
// 1: On contrôle la hauteur.
$type = 0;
//on charge l'image $img dans $img_big:
$img_big = imagecreatefromjpeg($img);
//on demande les dimension de l'image $img:
$size = getimagesize($img);
//on fait une nouvelle image ayant pour dimension: largeur=img_x et hauteur=img_y :
$img_mini = imagecreatetruecolor ($img_x, $img_y);
//on copie l'image d'origine contenu dans img_big dans img_mini en la reduisant a $img_x pour la largeur et $img_y pour la hauteur:
imagecopyresampled ($img_mini,$img_big,0,0,0,0,$img_x,$img_y,$size[0],$size[1]);
//on envoie l'image reduire au navigateur:
imagejpeg($img_mini);
?>
Ensuite je pensais pour afficher l'image plus vite si on utilisait
ob_start('ob_gzhandler'); ???
Utilisation :
Ligne 1 :
ob_start('ob_gzhandler');
Dernière ligne :
ob_end_flush();
@+
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 7 juin 2005 à 08:15
Salut,
Nikel !!!!
Super trop cool!!!!
Merci.
@+
10/10 ;-)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 7 juin 2005 à 00:02
Salut,
remplace <? par <?php
ensuite pour avoir la largeur et hauteur de l'image il existe une méthode plus rapide que getimagesize()
mmaxuel
Messages postés101Date d'inscriptionsamedi 13 avril 2002StatutMembreDernière intervention29 avril 2004 6 juin 2005 à 21:54
le code vient d'etre mise a jour...
l'image obtenu est de meilleur qualite...
a+
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 6 juin 2005 à 19:55
Re,
c'est bon j'ai réglé le problème sauf que maintenant j'ai une image pourave. C'est quasi du noir et blanc.
Normale ?
@+
mmaxuel
Messages postés101Date d'inscriptionsamedi 13 avril 2002StatutMembreDernière intervention29 avril 2004 6 juin 2005 à 17:17
quellque parametre as tu appliquer?
21.php?.......
.
ImmortalPC
Messages postés954Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention11 novembre 20082 6 juin 2005 à 15:49
Salut,
il a l'air super comme code mais moi il ne marche pas :
L'image refuse de s'afficher, j'ai désactivé le header et voilà l'érreur :
Warning: imagecreate() [function.imagecreate.html]: Invalid image dimensions in c:\program files\internet\serveurs\easyphp1-7\www\immortal-pc\miniatures\21.php on line 40
Warning: imagecopyresized(): supplied argument is not a valid Image resource in c:\program files\internet\serveurs\easyphp1-7\www\immortal-pc\miniatures\21.php on line 43
Warning: imagejpeg(): supplied argument is not a valid Image resource in c:\program files\internet\serveurs\easyphp1-7\www\immortal-pc\miniatures\21.php on line 46
@+
mmaxuel
Messages postés101Date d'inscriptionsamedi 13 avril 2002StatutMembreDernière intervention29 avril 2004 22 mai 2005 à 15:37
salut hywan!
effectivement j'avais mit le niveau expert car je me suis dit qu'un debutant n'avait pas a utiliser ce code...
bon pour vous faire plaisir le vais le remettre en niveau novice...
cordialement.
cs_HyWaN
Messages postés34Date d'inscriptionlundi 31 mai 2004StatutMembreDernière intervention11 mai 2006 22 mai 2005 à 14:54
... je veux pas etre mechant :) mais ca merite level expert ? lol le script est tres bien :) mais c'est des fonctions de gd de php :p enfin j'attendais plus d'un niveau expert :)
mais je ne critique en rien le script ! il est bien commente etc ... nikel rien a redire :)
sepultura666
Messages postés7Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention16 octobre 2006 10 févr. 2004 à 18:26
cs_seed
Messages postés99Date d'inscriptionsamedi 1 février 2003StatutMembreDernière intervention19 mars 2005 19 juil. 2003 à 13:16
aa j ai enfin retrouve le code qui m interressait mehdibou tu dis d'utiliser imagecopyresampled() a la place de imagecopyresised()
en effet lorsque les image sont foncer c est bien mieu mais je voudrais savoir si tu sais si cette fonction a des desavantages par rapport a imagecopyresized ou si on pourrait remplacer imagecopyresized par imagecopysampled tt le temp enfin ca me parait louche pourquoi y aurait t il 2 fonction d ont 1 qui marcherait mieu que l autre?? voila
matrey
Messages postés399Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention 6 septembre 2004 9 juin 2003 à 20:27
le non-support du gif est du à la maj de GD, qui a préféré ne plus gérer le gif, pke les proprios du format commencaient à péter les couilles a vouloir demander des droits ($$$) sur l'utilisation du format... Pauvre web...
cs_seed
Messages postés99Date d'inscriptionsamedi 1 février 2003StatutMembreDernière intervention19 mars 2005 9 juin 2003 à 20:16
comment faire si on ne traite pas que des images jpg ??? y a t il un moyen de se debrouiller sans recuperer l exention de l image pour en fontion de celle ci adapter imagecreatefrom$extention !!!!!
de plus bcp d hebergeur ne gerte plus le gif donc le imagecreatefromGIF ca passera pas!!!! je pense avoir la reponse mais je suis aps sur donc .. merci de me repondre ;-)
cs_mehdibou
Messages postés365Date d'inscriptionvendredi 24 mai 2002StatutMembreDernière intervention18 octobre 2004 7 avril 2003 à 19:02
Intéressant et pratique pour pas à avoir à se coltiner les miniatures lors de l'upload d'images.
Pour info, utilisez imagecopyresampled() à la place de imagecopyresized() si la luminosité de la miniature n'est pas bonne.
mmaxuel
Messages postés101Date d'inscriptionsamedi 13 avril 2002StatutMembreDernière intervention29 avril 2004 5 avril 2003 à 14:44
j'ai fait ça pour etendre l'acces du site http://xportal.free.fr au portable i-mode, et vu comme il est construit, je ne peux pas me permettre d'ajouter d'autre image... en fait si je pourrait mais bon comme j'ai pas trop le temsp de tou modifier je garde cette methode.
voila, mais sinon le code peut facilment etre modifier pour sauvegarder l'image generer...
matrey
Messages postés399Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention 6 septembre 2004 5 avril 2003 à 14:39
il faudrait éviter de la générer à chaque fois... Les services d'hébergement actuels proposent suffisamment d'escpace disque pour se permettre de stocker les miniatures...
6 janv. 2006 à 12:19
8 juin 2005 à 13:26
Je comprend pas trop l'histoire avec $max_y
J'avait besoin de pouvoir paramétrer soit la hauteur soit la longeur sans avoir à créer 2 fichiers alors je l'ai un peu remixé et j'ai enlevé l'histoire de $max_y.
Source :
<?php
////////////////////////////////////////////////
// Coded by mmaxuel for //
// http://xportal.free.fr/imode.php //
// //
// le site imode doivent avoir des images //
// deja reduite, en effet, meme en utlisant //
// les balises //
// l'image lorsqu'elle est lu par le //
// navigateur i-mode il verifie la taille //
// et il la refuse si elle est trop grande //
// d'ou l'utilité de reduire l'image avant //
// de l'envoyer... //
// voila! //
// pour toute question: //
// rmoummed hotmail . com //
// //
// //
// //
// exemple d'utilisation: //
// vous desirez reduire l'image Bateau.jpg //
// avec une largeur de 120, la syntaxe sera //
// resizepicture.php?img=Bateau.jpg&img_x=120 //
///////////////////////////////////////////////
//on enverra au navigateur un fichier de type image au format jpeg:
header('Content-type: image/jpeg');
$img = 'Zed_Art-Digital_00059.jpeg';//Image
$img_x = 150;// Largeur de la miniature
$img_y = 150;// Hauteur de la miniature
// 0: On contrôle la largeur.
// 1: On contrôle la hauteur.
$type = 0;
//on charge l'image $img dans $img_big:
$img_big = imagecreatefromjpeg($img);
//on demande les dimension de l'image $img:
$size = getimagesize($img);
if($type === 0){
if($img_x <= 0){
$img_x = $size[0];
}
$img_y = round(($size[1]*$img_x)/$size[0]);
}else{
if($img_y <= 0){
$img_y = $size[1];
}
$img_x = round(($size[0]*$img_y)/$size[1]);
}
//on fait une nouvelle image ayant pour dimension: largeur=img_x et hauteur=img_y :
$img_mini = imagecreatetruecolor ($img_x, $img_y);
//on copie l'image d'origine contenu dans img_big dans img_mini en la reduisant a $img_x pour la largeur et $img_y pour la hauteur:
imagecopyresampled ($img_mini,$img_big,0,0,0,0,$img_x,$img_y,$size[0],$size[1]);
//on envoie l'image reduire au navigateur:
imagejpeg($img_mini);
?>
Ensuite je pensais pour afficher l'image plus vite si on utilisait
ob_start('ob_gzhandler'); ???
Utilisation :
Ligne 1 :
ob_start('ob_gzhandler');
Dernière ligne :
ob_end_flush();
@+
7 juin 2005 à 08:15
Nikel !!!!
Super trop cool!!!!
Merci.
@+
10/10 ;-)
7 juin 2005 à 00:02
remplace <? par <?php
ensuite pour avoir la largeur et hauteur de l'image il existe une méthode plus rapide que getimagesize()
imagesx()
et imagesy()
http://fr.php.net/manual/fr/function.imagesx.php
http://fr.php.net/manual/fr/function.imagesy.php
a ++
6 juin 2005 à 21:54
l'image obtenu est de meilleur qualite...
a+
6 juin 2005 à 19:55
c'est bon j'ai réglé le problème sauf que maintenant j'ai une image pourave. C'est quasi du noir et blanc.
Normale ?
@+
6 juin 2005 à 17:17
21.php?.......
.
6 juin 2005 à 15:49
il a l'air super comme code mais moi il ne marche pas :
L'image refuse de s'afficher, j'ai désactivé le header et voilà l'érreur :
Warning: imagecreate() [function.imagecreate.html]: Invalid image dimensions in c:\program files\internet\serveurs\easyphp1-7\www\immortal-pc\miniatures\21.php on line 40
Warning: imagecopyresized(): supplied argument is not a valid Image resource in c:\program files\internet\serveurs\easyphp1-7\www\immortal-pc\miniatures\21.php on line 43
Warning: imagejpeg(): supplied argument is not a valid Image resource in c:\program files\internet\serveurs\easyphp1-7\www\immortal-pc\miniatures\21.php on line 46
@+
22 mai 2005 à 15:37
effectivement j'avais mit le niveau expert car je me suis dit qu'un debutant n'avait pas a utiliser ce code...
bon pour vous faire plaisir le vais le remettre en niveau novice...
cordialement.
22 mai 2005 à 14:54
mais je ne critique en rien le script ! il est bien commente etc ... nikel rien a redire :)
10 févr. 2004 à 18:26
imagecreatetruecolor();
la qualité est nettement mieux...
exemple :
http://www.sepu-design.com/ dans la partie productions
19 juil. 2003 à 13:16
en effet lorsque les image sont foncer c est bien mieu mais je voudrais savoir si tu sais si cette fonction a des desavantages par rapport a imagecopyresized ou si on pourrait remplacer imagecopyresized par imagecopysampled tt le temp enfin ca me parait louche pourquoi y aurait t il 2 fonction d ont 1 qui marcherait mieu que l autre?? voila
9 juin 2003 à 20:27
9 juin 2003 à 20:16
de plus bcp d hebergeur ne gerte plus le gif donc le imagecreatefromGIF ca passera pas!!!! je pense avoir la reponse mais je suis aps sur donc .. merci de me repondre ;-)
7 avril 2003 à 19:02
Pour info, utilisez imagecopyresampled() à la place de imagecopyresized() si la luminosité de la miniature n'est pas bonne.
5 avril 2003 à 14:44
voila, mais sinon le code peut facilment etre modifier pour sauvegarder l'image generer...
5 avril 2003 à 14:39