Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/07/2006, 17h47   #1
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Par défaut Header et son emplacement

Bonjour à tous !

Petit problème mineur mais que je n'arrive pas à résoudre....

Je veux réduire des images avec GD2 et je fais ceci :

Dans index.php :

Code :
<img border="'.resize_image(image.jpg).'">
Dans fonction.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
function resize_image($image)
{
 
header('Content-type: image/jpeg');
 
$ratio = .5;
// Calcul des nouvelles dimensions
list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
$n_largeur = $largeur * $ratio;
$n_hauteur = $hauteur * $ratio;
 
//création de la destination
$destination = imagecreatetruecolor($n_largeur, $n_hauteur);
 
//on ouvre la source
$source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
 
// Redimensionnement
imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
 
return imagejpeg($destination);
}
et j'ai comme erreur evidemment des tas de caracteres....

Où c'est que je mets le header !!!!
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 19h18   #2
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
Votre page est une page html et ne peut pas être à la fois une image. Un script php renvoie un fichier. A vous de choisir si votre script envoie un fichier ou envoie une image. Evidement, l'astuce est de créer deux scripts séparés.
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 20h58   #3
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
ok merci pour les infos mais ce qui m'interesse c'est l'astuce dont tu parles....

j'ai un fichier qui crée l'image et d'un autre coté, je dois afficher cette image...

comment s'y prendre ??

d'un coté :

index.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
	require(DIR_WS_FUNCTIONS . 'ficher.php');
	$i=0;
	# affichage des produits visites
	$requete = mysql_query("select p.products_id, p.products_image from products p, visite_customers v where v.products_id = p.products_id and v.customers_id = ".$customer_id." order by vis_date desc");
	while($resultat = mysql_fetch_array($requete))
	{
	if($i<=4)
		{
		$img = $resultat["products_image"] ;
 
	echo '<td>
<a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">
<img border="'.resize_image($img).'"></a></td>';
		}
		$i++;
		}
		?>
et de l'autre :

fichier.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
function resize_image($image)
{
$ratio = .5;
// Calcul des nouvelles dimensions
list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
$n_largeur = $largeur * $ratio;
$n_hauteur = $hauteur * $ratio;
 
//création de la destination
$destination = imagecreatetruecolor($n_largeur, $n_hauteur);
 
//on ouvre la source
$source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
 
// Redimensionnement
imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
 
$mini = "mini_$image";
header('Content-type: image/jpeg');
imagejpeg($destination);
}
?>
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 21h39   #4
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
Le premier script donner une page html qui spécifie qu'il y a une image, l'autre script crée l'image. Quand vous avez dit ça, vous avez tout dit.

Code :
<img src="resize.php" />
Les difficultés éventuelles pourraient être de savoir comment les variables sont transmises d'un script à un autre. Ici, a priori, les seules variable à transmettre sont les arguments de la fonction de redimensionnement qui n'est qu'une chaine que vous pouvez transmetre à resize.php par la méthode GET.
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 00h28   #5
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Si je pose la question, c'est que je ne sais pas le faire donc soit on me dit donne la demarche complete et dans ce cas je pense pouvoir comprendre un code soit on ne me donne rien du tout....

si tu connais la réponse pourquoi ne pas l'indiquer....

merci en tout cas mais j'en suis toujours au même point

@+
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 00h31   #6
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Dans mon code, je mets ça

Code :
1
2
3
4
5
$image = $resultat["products_image"] ;
 
	echo '<td>
<a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">
<img src="fichier.php?image='.$image.'" border="0"></a></td>';
et dans la source, j'obtiens ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<a href="product_info.php?products_id=106" style="cursor:pointer">
<img src="fichier.php?image=20874146o_aix.jpg" border="0"></a></td>
<td>
<a href="product_info.php?products_id=29" style="cursor:pointer">
<img src="fichier.php?image=MLD27119.jpg" border="0"></a></td>
<td>
<a href="product_info.php?products_id=105" style="cursor:pointer">
<img src="fichier.php?image=50596.jpg" border="0"></a></td>
<td>
<a href="product_info.php?products_id=33" style="cursor:pointer">
<img src="fichier.php?image=308963015.jpg" border="0"></a></td>
<td>
<a href="product_info.php?products_id=30" style="cursor:pointer">
<img src="fichier.php?image=7382EM301.jpg" border="0"></a>
et le fichier.php, c'est ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
$image = $_GET["image"];
$ratio = .5;
// Calcul des nouvelles dimensions
list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
$n_largeur = $largeur * $ratio;
$n_hauteur = $hauteur * $ratio;
 
//création de la destination
$destination = imagecreatetruecolor($n_largeur, $n_hauteur);
 
//on ouvre la source
$source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
 
// Redimensionnement
imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
 
$mini = "mini_$image";
header('Content-type: image/jpeg');
imagejpeg($destination);
 
?>
Voilà, ça avance doucement mais je n'arrive toujours pas à saisir le delire

merci
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 13h51   #7
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
personne pour m'aider ??
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 15h36   #8
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
Qu'est-ce qui ne va pas ?
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 16h45   #9
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
merci de me répondre

Ba en fait, je fais comme vous m'aviez dit :

Index.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr><td class="infoBoxHeading" colspan="5">Derniers produits visités</td></tr>
<tr align="center">
<?
$i=0;
# affichage des produits visites
$requete = mysql_query("select p.products_id, p.products_image from products p, visite_customers v where v.products_id = p.products_id and v.customers_id = ".$customer_id." order by vis_date desc");
while($resultat = mysql_fetch_array($requete))
{
if($i<=4)
{
$image = $resultat["products_image"] ;
$file = "fichier.php?image=".$image;
echo '<td>
<a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">
<span>'; ?>
<img src="<? include($file); ?>" border="0">
<? echo '</span></a></td>';
}
$i++;
}
?>
</tr>
</table>
et dans Fichier.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<? //$image = $_GET["image"];
$ratio = .5;
// Calcul des nouvelles dimensions
list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $image); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
$n_largeur = $largeur * $ratio;
$n_hauteur = $hauteur * $ratio;
//création de la destination
$destination = imagecreatetruecolor($n_largeur, $n_hauteur);
//on ouvre la source
$source = imagecreatefromjpeg(DIR_WS_IMAGES . $image);
// Redimensionnement
imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
$mini = "mini_$image";
header('Content-type: image/jpeg');
imagejpeg($destination);
imagedestroy($destination);
?>
et dans le code source de la page html, j'ai ceci :

Code :
<b>Warning</b>:  main(fichier.php?image=HN4088504.jpg): failed to open stream: No such file or directory in <b>/....
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 18h47   #10
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
évolution sans solution...

Code :
1
2
3
<a href="product_info.php?products_id='.$resultat["products_id"].'" style="cursor:pointer">'; 
echo '<img src=fichier.php?image="'.$image.' border="0">';
echo '</a>
J'affiche bien la balise img avec en valeur le fichier qui crée l'image que voici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
$img = $_GET["image"];
$ratio = .5;
// Calcul des nouvelles dimensions
list($largeur, $hauteur) = getimagesize(DIR_WS_IMAGES . $img); //list est un moyen plus pratique pour ne récupérer que ce qu'on veut
$n_largeur = $largeur * $ratio;
$n_hauteur = $hauteur * $ratio;
//création de la destination
$destination = imagecreatetruecolor($n_largeur, $n_hauteur);
//on ouvre la source
$source = imagecreatefromjpeg(DIR_WS_IMAGES . $img);
// Redimensionnement
imagecopyresampled($destination, $source, 0, 0, 0, 0, $n_largeur, $n_hauteur, $largeur, $hauteur);
$mini = "mini_$image";
header('Content-type: image/jpeg');
imagejpeg($destination);
imagedestroy($destination);
?>
Mais le résultat n'est toujours pas bon.

Quand je regarde le code source de la page html générée, j'ai ceci :

Code :
<a href="product_info.php?products_id=29" style="cursor:pointer"><img src=fichier.php?image="MLD27119.jpg border="0"></a>
En fait le fichier n'est pas interprété mais juste affiché....

Merci de m'aider...ça fait deux jours que je suis dessus sans succés.
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 00h18   #11
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Ok ça marche !

En fait, dans le fichier.php, il ne trouvais pas le bon chemin pour l'image.

Merci en tout cas !!!
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h33.


 
 
 
 
Partenaires

Hébergement Web