Ajouter du text sur (ou dessus/dessous) un Qrcode généré [Résolu/Fermé]

Signaler
Messages postés
24
Date d'inscription
mercredi 2 septembre 2015
Statut
Membre
Dernière intervention
11 octobre 2017
-
Messages postés
24
Date d'inscription
mercredi 2 septembre 2015
Statut
Membre
Dernière intervention
11 octobre 2017
-
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.

1 réponse

Messages postés
24
Date d'inscription
mercredi 2 septembre 2015
Statut
Membre
Dernière intervention
11 octobre 2017
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));


?>