REDIMENSION D'IMAGE AVANT L'ENVOIE AU NAVIGATEUR...

matrey Messages postés 399 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 6 septembre 2004 - 5 avril 2003 à 14:39
drommk Messages postés 15 Date d'inscription vendredi 7 janvier 2005 Statut Membre Derniè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.

https://codes-sources.commentcamarche.net/source/13213-redimension-d-image-avant-l-envoie-au-navigateur

drommk Messages postés 15 Date d'inscription vendredi 7 janvier 2005 Statut Membre Derniè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és 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
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);

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();

@+
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
7 juin 2005 à 08:15
Salut,
Nikel !!!!
Super trop cool!!!!
Merci.
@+
10/10 ;-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
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()

imagesx()

et imagesy()

http://fr.php.net/manual/fr/function.imagesx.php
http://fr.php.net/manual/fr/function.imagesy.php

a ++
mmaxuel Messages postés 101 Date d'inscription samedi 13 avril 2002 Statut Membre Dernière intervention 29 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és 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
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és 101 Date d'inscription samedi 13 avril 2002 Statut Membre Dernière intervention 29 avril 2004
6 juin 2005 à 17:17
quellque parametre as tu appliquer?

21.php?.......

.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
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és 101 Date d'inscription samedi 13 avril 2002 Statut Membre Dernière intervention 29 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és 34 Date d'inscription lundi 31 mai 2004 Statut Membre Dernière intervention 11 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és 7 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 16 octobre 2006
10 févr. 2004 à 18:26
faut aussi rajouter un :
imagecreatetruecolor();

la qualité est nettement mieux...

exemple :

http://www.sepu-design.com/ dans la partie productions
cs_seed Messages postés 99 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 19 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és 399 Date d'inscription jeudi 31 janvier 2002 Statut Membre Derniè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és 99 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 19 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és 365 Date d'inscription vendredi 24 mai 2002 Statut Membre Dernière intervention 18 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és 101 Date d'inscription samedi 13 avril 2002 Statut Membre Dernière intervention 29 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és 399 Date d'inscription jeudi 31 janvier 2002 Statut Membre Derniè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...
Rejoignez-nous