Ich verwende ZXing, um einen QR-Code zu generieren. Dies ist, was mein Code wie folgt aussieht:Wie wird die Größe der Bitmap in ZXing festgelegt?
public partial class QRPage : ContentPage
{
public QRPage()
{
InitializeComponent();
var stream = DependencyService.Get<IBarcodeService>().ConvertImageStream("nika");
qrImage.Source = ImageSource.FromStream(() => { return stream; });
qrImage.HeightRequest = 200;
}
}
Und andererseits:
[assembly: Xamarin.Forms.Dependency(typeof(BarcodeService))]
namespace MyApp.Droid
{
public class BarcodeService : IBarcodeService
{
public Stream ConvertImageStream(string text, int width = 500, int height = 500)
{
var barcodeWriter = new ZXing.Mobile.BarcodeWriter
{
Format = ZXing.BarcodeFormat.QR_CODE,
Options = new ZXing.Common.EncodingOptions
{
Width = width,
Height = height,
Margin = 2
}
};
barcodeWriter.Renderer = new ZXing.Mobile.BitmapRenderer();
var bitmap = barcodeWriter.Write(text);
var stream = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, stream);
stream.Position = 0;
return stream;
}
}
}
Hier ist die XAML, wo ich den Code bin mit:
<StackLayout Padding="20,30,20,30">
<Label Text="..." FontSize="Medium "/>
<Frame VerticalOptions="CenterAndExpand">
<Image x:Name="qrImage" WidthRequest="300" />
</Frame>
...
</StackLayout>
Das Problem ist, egal, was ich als Höhe und Breite für ConvertImageStream
einstellen, das resultierende Bild ist nicht quadratisch, sieht aber eher so aus:
Wie kann ich es in ein Quadrat verwandeln? Danke im Voraus.
irgendwelche Vorschläge auf, warum es sieht aus wie das, was ich in meiner app geschrieben? – nicks
@NikaGamkrelidze Können Sie Ihren XAML (oder Code) für diese Seite in Ihre Frage eingeben, oder versuchen Sie den Seitencode in meiner Antwort zuerst, um zu sehen, ob Sie das gleiche Ergebnis wie ich ... – SushiHangover
erhalten Sie die Bearbeitung für den XAML-Code – nicks