Ajouter du text sur (ou dessus/dessous) un Qrcode généré

Résolu
jubasse Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
jubasse Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis actuellement confronté à un problème, je cherche à ajouter un texte sur un Qrcode généré grâce à l'API Google dont je force le téléchargement.
Voici le code :
<?php 
//récupération des paramètres envoyés par le controller
if(!empty([$soc_code,$socname]))
{
  //création de la société
  $compagny = new Compagny();
  $compagny->soc_code = $soc_code;
  $compagny->socname = $socname;
  $qr_code = $compagny->getQrCodeUrlForApi($app);
  $qr_code = urlencode($qr_code);
  
}else{
  header("Location: index.php");
}

//dossier
$folder_name = "img/".base64_encode(sha1($qr_code));

$folders = scandir("img/");

if(!in_array(base64_encode(sha1($qr_code)), $folders))
{
 mkdir($folder_name."/");
}

//création ou ouverture du fichier
$myfile = fopen($folder_name.'/'.$soc_code.'.png',"w");

//récupération du qrcode
$content = file_get_contents("https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=".$qr_code."&choe=UTF-8");

//download dans le dossier
file_put_contents($folder_name.'/'.$soc_code.'.png', $content);

$filename = $folder_name.'/'.$soc_code.'.png';

//forcing du téléchargement
readfile($filename);

header('Content-Type: application/force-download');

header('Content-Disposition: attachment; filename='.basename($filename));



?>


Je pensais recréer une image à partir d'un texte et fusionner les deux images mais ajouté au forcing du téléchargement cela deviens compliqué, un peu d'aide ne serait pas de refus.

Merci d'avance pour vos réponses.
Julien.
A voir également:

1 réponse

jubasse Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   1
 
Finalement j'ai réussis, pour ceux que ça intéresse voici le code :
<?php 
//récupération des paramètres envoyés par le controller
if(!empty([$soc_code,$socname]))
{
  //création de la société
  $compagny = new Compagny();
  $compagny->soc_code = $soc_code;
  $compagny->socname = $socname;
  $qr_code = $compagny->getQrCodeUrlForApi($app);
  $qr_code = urlencode($qr_code);
  
}else{
  header("Location: index.php");
}

//dossier
$folder_name = "img/".base64_encode(sha1($qr_code));

$folders = scandir("img/");

if(!in_array(base64_encode(sha1($qr_code)), $folders))
{
	mkdir($folder_name."/");
}

//création ou ouverture du fichier
$myfile = fopen($folder_name.'/'.$soc_code.'.png',"w");

//récupération du qrcode
$content = file_get_contents("https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=".$qr_code."&choe=UTF-8");

//download dans le dossier
file_put_contents($folder_name.'/'.$soc_code.'.png', $content);

$filename = $folder_name.'/'.$soc_code.'.png';

//On importe l'image a laquelle nous allons ajouter le texte
$img = imagecreatefrompng($filename);

//On prepare la couleur, en RGB
$noir = imagecolorallocate($img, 0, 0, 0);

//On ajoute le texte a l'aide de la fonction imagestring
imagestring($img, 5, 33, 10, $compagny->socname, $noir);


//On affiche l'image
header('Content-type: image/png');

imagepng($img);
//forcing du téléchargement


header('Content-Type: application/force-download');

header('Content-Disposition: attachment; filename='.basename($filename));


?>
0