Traitement image Php (redim + ajout logo)

diice Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -  
diice Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis actuellement en train de tester la gestion des images avec PHP.
La GD est installée pas de souci.

en fait j'essaye de melanger 2 scripts afin d'obtenir une image recadrée et avec un logo dessus.

la premiere etape est de recadrer mon image source, c'est a dire prendre une partie de l'image source (en l'occurence une partie de 100x100). ca j'y arrive.
mais apres, je n'arrive pas a y intégrer un logo.

si je ne recadre pas l'image, le script d'intégration logo marche. mais des que je melange le tout, la sauce ne prends plus !

où d'apres vous est l'erreur ??

voici le code

//creation mini 
$sourceMini=imagecreatefromjpeg('imgsource.jpg'); 
  
// On charge d'abord les images 
$sourceIco = imagecreatefrompng('logo-a-incorporer.png'); // Le logo est la source 
  
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image 
$largeur_sourceIco = imagesx($sourceIco); 
$hauteur_sourceIco = imagesy($sourceIco); 
$largeur_destination = imagesx($sourceMini); 
$hauteur_destination = imagesy($sourceMini); 

// On veut placer le logo au centre, on calcule les coordonnées où on doit placer le logo sur la photo 
$destination_x = ($largeur_destination/2) - ($largeur_sourceIco/2); 
$destination_y =  ($hauteur_destination/2) - ($hauteur_sourceIco/2); 

//Création de l'image de destination 
$DestinationMini=imagecreatetruecolor(100,100); 

//copy de la source vers destination imagecopyresampled($DestinationMini,$sourceMini,0,0,150,100,100,100,100,100);    
// On met le logo (source) dans l'image de destination (la photo) 
imagecopymerge($DestinationMini, $sourceIco, $destination_x, $destination_y, 0, 0, $largeur_sourceIco, $hauteur_sourceIco, 100); 
    
// Affichage 
imagejpeg($DestinationMini, NULL, 80); 



merci de bien vouloir m'aider, je coince ! surement dans l'ordre de traitement, mais pourtant j'y suis allé a la logique...

merci encore !!
A voir également:

5 réponses

hervé56 Messages postés 268 Date d'inscription   Statut Membre Dernière intervention   10
 
t'es sur de ca ? :

$sourceIco = imagecreatefrompng('logo-a-incorporer.jpg');
0
diice Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   1
 
Non, excuse, c'est une coquille, j'ai remplacé mes variables par des noms génériques... effectivement, je ramene bien un .png :)

c changé :)
0
hervé56 Messages postés 268 Date d'inscription   Statut Membre Dernière intervention   10
 
bé alors pkoi jpeg si tu traite un png ?

// Affichage
imagejpeg($DestinationMini, NULL, 80);
0
diice Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   1
 
parce qu'a la finale l'image est en jpg.
l'image source (jpg) et le logo (png) qui vient se mettre dessus forme une nouvelle image finale en jpg.

c'est ce qui etait montré dans le script que j'ai pris ici : https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/916429-creez-des-images-en-php#ss_part_5

<?php 
header ("Content-type: image/jpeg"); // L'image que l'on va créer est un jpeg 

// On charge d'abord les images 
$source = imagecreatefrompng("logo.png"); // Le logo est la source 
$destination = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la destination 

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

// On affiche l'image de destination qui a été fusionnée avec le logo 
imagejpeg($destination); 
?> 


il y a bien une image jpg sur laquelle vient un png pour finir en jpeg a la finale...

c pour ça donc :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
diice Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   1
 
quelqu'un aurait une p'tite sur mon probleme, je tourne te triture le code dans tous les sens, j'ai toujours pas mon logo !!

et je vois vraiment pas comment faire !!

pleassseee ??
0