示例#1
0
        private MemoryStream GenCode(string data, int height, int width, int margin)
        {
            var qrCodeWriter = new ZXing.BarcodeWriterPixelData
            {
                Format  = ZXing.BarcodeFormat.QR_CODE,
                Options = new QrCodeEncodingOptions
                {
                    Height = height,
                    Width  = width,
                    Margin = margin
                }
            };
            var bitMatrix = qrCodeWriter.Encode(data);

            var renderer = new ZXing.SkiaSharp.Rendering.SKBitmapRenderer();
            var bitmap   = renderer.Render(bitMatrix, BarcodeFormat.QR_CODE, data);

            var skStream = new SkiaSharp.SKDynamicMemoryWStream();

            bitmap.Encode(skStream, SkiaSharp.SKEncodedImageFormat.Png, 100);
            var stream = skStream.CopyToData().AsStream();

            var ms = new MemoryStream();

            stream.CopyTo(ms);
            ms.Position = 0;

            return(ms);
        }
        public void SetUrl(string url)
        {
            var bitmapRenderer = new ZXing.Rendering.WriteableBitmapRenderer();

            bitmapRenderer.Background = System.Windows.Media.Colors.White;
            bitmapRenderer.Foreground = System.Windows.Media.Colors.Black;

            ZXing.BarcodeWriterPixelData qrWriter = new ZXing.BarcodeWriterPixelData()
            {
                Format  = BarcodeFormat.QR_CODE,
                Options = new ZXing.Common.EncodingOptions()
                {
                    Height = 1024,
                    Width  = 1024
                }
            };

            var bitmap = bitmapRenderer.Render(qrWriter.Encode(url), BarcodeFormat.QR_CODE, url);

            QrImage.Source = bitmap;

            UrlText.Text = "spin.exe --uri " + url;
        }