le code suivant permet de fusionner deux images en une seule. (Un logo mergé avec une image lambda)
Il fonctionne bien avec deux fichiers présents sur mon disque.
<?php
header ("Content-type: image/jpeg");
$source = imagecreatefromjpeg("logo.jpg");
$destination = imagecreatefromjpeg("img_tmp.jpg");
// largeur et hauteur images
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// coordonnées du logo dans l'image
$destination_x = $largeur_destination - ($largeur_source+150);
$destination_y = $hauteur_destination - ($hauteur_source+150);
// 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);
?>
D'autre part, j'ai une base de donnée qui contient des images en binaire.Ce que j'aimerai faire, c'est que pour chaque image lue dans la DB, un merge d'un logo soit effectué avant de
transmettre l'image à une page html. (utilisation du 1er programme)
La lecture de la DB se fait de manière suivante:
<?php
$id=$_GET['id'];
mysql_connect('localhost', 'toto', '');
mysql_select_db("essai");
$requete = "SELECT donnees_binaires,type_fichier FROM images_binaires WHERE id=$id";
$resultat = mysql_query($requete);
$donnees = mysql_fetch_array($resultat);
$type = @mysql_result($resultat,0,images_binaires.type_fichier);
$image=$donnees[0];
......
Je récupère l'image dans la variable $image et son type dans $type.J'arrive à afficher l'image ou a la sauver sur mon DD mais je voudrais directement la transmettre
à la routine de merge (1er programme)
Donc en fait remplacer le $destination = imagecreatefromjpeg("img_tmp.jpg"); par quelque chose du genre
$destination="mon image lue dans la DB"
J'ai essayé une affectation simple du genre $destination=$image mais ça ne fonctionne pas (un message du genre ressource incorrecte...)
Quelqu'un aurait-il une solution?
Merci.