我无法使用ZXing.NET.Mobile在Xamarin中看到生成的QR码图像

时间:2014-09-23 02:49:03

标签: c# xamarin zxing

请帮助我,

我无法看到生成的QR码图片。我做错了什么!

我使用过Xamarin Forms。我简单地在StackLayout中使用了一个Image来填充

public class BarcodePage : ContentPage
{
    public BarcodePage ()
    {
        Image img = new Image {
            Aspect = Xamarin.Forms.Aspect.AspectFit
        };


        img.Source = ImageSource.FromStream (() => {
            var writer = new BarcodeWriter {
                Format = BarcodeFormat.QR_CODE,

                Options = new EncodingOptions {
                    Height = 200,
                    Width = 600
                }
            };
            var bitmap = writer.Write ("My Content");

            MemoryStream ms = new MemoryStream ();
            bitmap.Compress (Bitmap.CompressFormat.Jpeg, 100, ms);
            return ms;
        });

        var Layout = new StackLayout {
            Children = 
            { img}
        };

        Content = Layout;

}

1 个答案:

答案 0 :(得分:1)

当您使用MemoryStream方法将位图数据写入Compress()时,当您返回时,流的位置将在结尾处。

确保在返回之前重置流的位置,方法是添加此行。

ms.Position = 0;

Image现在将从头开始而不是从结尾读取流。