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

Résolu/Fermé
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 - Modifié par jubasse le 4/09/2015 à 11:38
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 - 4 sept. 2015 à 13:15
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 mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
4 sept. 2015 à 13:15
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