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

Signaler
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004
-
Messages postés
15
Date d'inscription
vendredi 7 janvier 2005
Statut
Membre
Dernière intervention
6 janvier 2006
-
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

Messages postés
15
Date d'inscription
vendredi 7 janvier 2005
Statut
Membre
Dernière intervention
6 janvier 2006

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

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