Soucis d'affichage avec la gestion des images (GD) en PHP

Eléphanteau du PHP | 10 Messages

17 mars 2016, 16:59

Bonjour chers amis,

Je recherche depuis midi à fusionner deux images existantes et présentes dans mon serveur FTP, mais en vain.

Je vous propose le code qui m'affiche cela :
$expExtension = explode(".",$blog['img_t1']);
$extension = $expExtension[1];
$extension = strtolower($extension);

switch($extension)
{
	case 'jpg' :
		/*$source = imagecreatefrompng("http://www.monsite.com/templates/images/img_copyright.png");
		
		// La photo est la destination
		$destination = imagecreatefromjpeg("http://www.monsite.com/images/800/auto/image/".$blog['img_t1']);
		
		// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
		$largeur_source = imagesx($source);
		$hauteur_source = imagesy($source);
		$largeur_destination = imagesx($destination);
		$hauteur_destination = imagesy($destination);
		
		// On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
		$destination_x = $largeur_destination - $largeur_source;
		$destination_y = $hauteur_destination - $hauteur_source;
		
		// On met le logo (source) dans l'image de destination (la photo)
		imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);*/

		// Création des instances d'image
		$dest = imagecreatefromjpeg("http://www.monsite.com/images/800/auto/image/".$blog['img_t1']);
		$src = imagecreatefrompng('http://www.monsite.com/template/images/img_copyright.png');

		// Copie et fusionne
		imagecopymerge($dest, $src, 10, 10, 0, 0, 100, 47, 75);

		// Affichage et libération de la mémoire
		header('Content-Type: image/jpeg');
		
		imagejpeg($dest);

		imagedestroy($dest);
		imagedestroy($src);
		
	break;
	case 'png' :
		// à faire
	break;
	case 'gif' :
		// à faire
	break;
}
Voici tout ce que j'ai pu afficher jusqu'à maintenant :

Image

J'ai laissé en commentaire ce qui me semblait bon, mais tout compte fait, rien n'y fait :-(

Si quelqu'un sait bien gérer GD, ce serait sympa.

Merci par avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

17 mars 2016, 17:38

Bonjour,

Ce que tu affiches, c'est le code de ton image, as-tu essayé de l'enregistrer dans un fichier .jpg et voir ce que ça donne ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 10 Messages

17 mars 2016, 17:48

Bonjour @rthur et merci pour cette réponse.
Je me doutais bien qu'il s'agisse de l'affichage de l'image jpg, mais puis-je utiliser la fonction fopen() et réécrire directement l'image avec le code donné sur l'image ci-dessus ?

Merci d'avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

17 mars 2016, 17:53

oui et tu n'as même pas besoin de passer par fopen, vu que la fonction imagejpeg() sait le faire nativement ;)

Cf 2ème exemple de la doc :
https://secure.php.net/manual/fr/function.imagejpeg.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 10 Messages

17 mars 2016, 18:00

Très bien. Donc j'ai tenté de faire ceci :
imagejpeg($dest, 'test.jpg');
Malheureusement, rien ne s'affiche.

Lorsque je fais :
echo imagejpeg($dest, 'test.jpg');
Le résultat est de 1

Mammouth du PHP | 2703 Messages

17 mars 2016, 18:09

est-ce qu'un fichier test.jpg est créé dans le répertoire où se trouve le script php ?

Eléphanteau du PHP | 10 Messages

17 mars 2016, 18:12

Non, et je ne peux pas me le permettre car je me situe pour l'affichage d'une image et donc ce serait trop lourd.
Je devrais peut-être me placer dans le fichier lors de l'ajout de l'image et faire ça directement dedans ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mars 2016, 19:17

Bonjour,

Comment fais tu pour consulter l'image générée ? est-ce que tu passes bien par une balise <img src="tonScriptPHPQuiGenereL'Image.php" /> ? ou est-ce que tu utilises un include/require ou autre dans ton code php, ce qui fait que ton image n'est pas ouverte par le navigateur en tant qu'image, mais lue en tant que code html ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 10 Messages

17 mars 2016, 21:55

Bonsoir Ryle.

J'utilise une include avec appel à une fonction me permettant d'envoyer un paramètre.
Déjà essayé en brut avec <img src="monFichierImage.php" /> mais cela ne fonctionne pas non plus :(