Ajouter des images ou du texte QR code généré par ZXing.Net
- Je utiliser ZXing.Net bibliothèque pour générer un QR code de l'image -
En haut de ma classe:
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
Ma méthode:
protected void UpdateQRSource(String address)
{
QRCodeWriter qrcode = new QRCodeWriter();
BarcodeWriter barcodeWriter = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new EncodingOptions
{
Width = 300,
Height = 300,
Margin = 4
}
};
using (Bitmap bitmap = barcodeWriter.Write(address))
{
IntPtr hbmp = bitmap.GetHbitmap();
try
{
BitmapSource source = Imaging.CreateBitmapSourceFromHBitmap(
hbmp,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
qrImage.Source = source; //set WPF image source
}
finally
{
DeleteObject(hbmp);
}
}
}
Conseillez-moi svp comment faire pour ajouter une chaîne de texte ou une image personnalisée dans le milieu de la QR code similaire à la Wikipédia visual QR code ci-dessous:
Mise à JOUR:
Intégration de logo personnalisé dans QR code (sans casser le dernier!) semble pas être une tâche triviale que la publication scientifique QR Images: l'optimisation de l'Image de l'incorporer dans des Codes QR montre...
Mais je me demande encore si j'ai pu générer un QR code (comme ci-dessus le code source), puis de superposer un texte personnalisé ou d'un logo, puis de valider l'image qui en résulte à nouveau par ZXing.Net.
Oui, bien sûr le résultat final est une image - mais je suis, après toutes les méthodes dans la bibliothèque ZXing pour ajouter un texte personnalisé ou des images à l'intérieur de l'généré QR. Aussi, je ne peux pas juste mettre mon image sur le dessus de la QR et puis espère juste que c'est encore lisible grâce à correction d'erreur (comme certains blogs suggérer) - parce que mon QR est généré de façon dynamique et contient (variable) adresse Bluetooth + plus de choses.
Ce que je voulais dire, c'est qu'il n'existe pas de méthode pour ajouter du texte, il est juste une méthode pour ajouter une image dans votre qrcode, comme wikipédia mettre le logo de wikipédia et non le texte de
wikipedia
OriginalL'auteur Alexander Farber | 2015-06-25
Vous devez vous connecter pour publier un commentaire.
Ici nous aller (vous pouvez utiliser n'importe quel logo):
Le résultat:
Et la sortie:
bm
est toujours valide d'un QR-code)Ne serait pas
return result.Text == url
lever une exception si le décodage échoue (je suis C# débutant)? Ne vaut-il pas mieux être écrit commereturn result != null && result.Text == url
?J'ai trouvé que le bug et le corriger (voir la dernière édition), mais vous avez raison @AlexanderFarber
N'est-ce pas
result.Text == url
comparant la chaîne des adresses? Ne devriez-vous pas mieux d'appelurl.Equals(result.Text)
de comparer chaîne de contenu?vous peut mais ce n'est pas une obligation pour les chaînes
OriginalL'auteur Thomas Ayoub
Puisque vous obtenez une image bitmap de ZXing vous pouvez utiliser C# standard des techniques pour dessiner le texte. Voir cette réponse pour plus d'info:
c# écrire du texte sur l'image bitmap
Pour la postérité, voici quelques copié sans vergogne code:
OriginalL'auteur Ian Newson