2014-09-16 2 views
2

J'ai généré une image de code QR en utilisant la bibliothèque zxing 2.1, mais l'image est très floue et peu claire. Où pourrais-je me tromper?comment réparer une image de code qr peu claire générée en utilisant zxing 2.1?

Screenshot of the current QR Code generated from Zxing 2.1

+1

Est-il en train d'être généré en basse résolution puis en upscale? –

+0

est-il possible si les données sont trop petites, comme juste un nombre à 8 chiffres? – amiekuser

+0

Il serait utile si vous avez posté un exemple d'image, et le code que vous utilisez pour le générer. –

Répondre

0

Je ne pense pas qu'il y ait quelque chose de mal avec l'image que vous créez. C'est seulement quand vous l'affichez que ça en devient flou.

Vous générez un petit code QR, avec une résolution limitée dans chaque direction. C'est tout à fait correct, mais quand il est affiché, il doit être mis à l'échelle de façon appropriée. Tout ce que vous utilisez pour afficher l'image (la visionneuse d'image par défaut d'Android, peut-être) est rééchantillonner l'image et en essayant de réduire les bords dentelés. C'est ce que vous voulez si c'est une photo, mais tout à fait inapproprié pour un code à barres, où vous voulez qu'il soit redimensionné en utilisant un algorithme de voisin le plus proche. De cette façon, il ne semblera pas flou du tout.

(Il est difficile d'être absolument certain de ce à moins que vous affichez l'image réelle plutôt que d'une capture d'écran, cependant.)

1

La génération qui arrive à un niveau inférieur et est ensuite mis à l'échelle d'une largeur et demande la hauteur. Vous pouvez demander la génération à une largeur et une hauteur plus élevées. ZXing expose BarcodeOptions dans la visionneuse que vous pouvez définir.

Dans votre modèle, vous pouvez le faire:

public EncodingOptions BarcodeOptions => new EncodingOptions() { Height = 100, Width = 100, PureBarcode = true }; 

Ensuite, dans votre XAML il pourrait ressembler à ceci:

<z:ZXingBarcodeImageView BarcodeFormat="QR_CODE" HeightRequest="100" WidthRequest="100" Margin="10" BarcodeValue="a long url to a thing that accepts a zing to another thing" 
         BarcodeOptions="{Binding BarcodeOptions}" > 

Rappelez-vous de mettre à jour la largeur et la hauteur de vos EncodingOptions si vous changez la largeur et hauteur sur votre XAML.

+0

Cheers. Résolu mon problème :) –

Questions connexes