• 【WPF】生成二维码


    第一步,下载Google的ZXing类库,以便引用;

      BitMatrix bitMatrix;
        
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                string content = this.txtChat.Text;
    
    
                    Dictionary<EncodeHintType, object> hints = new Dictionary<EncodeHintType, object>();
                    hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
                    
                    bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 200, 200);
                    this.img.Stretch = Stretch.Fill;
                    this.img.Source = toImage(bitMatrix);
            }

    下面代码是不同的转换

     private BitmapImage toImage(BitMatrix matrix)
            {
                try
                {
                    int width = matrix.Width;
                    int height = matrix.Height;
    
                    Bitmap bmp = new Bitmap(width, height);
                
                   // byte[] pixel = new byte[width * height];
    
                    for (int x = 0; x <height ; x++)
                    {
                        for (int y = 0; y < width; y++)
                        {
                            if (bitMatrix[x, y])
                            {
                                bmp.SetPixel(x,y,System.Drawing.Color.Black);
                            }
                            else
                            {
                                bmp.SetPixel(x, y, System.Drawing.Color.White);
                            }
                        }
                    }
    
                    return ConvertBitmapToBitmapImage(bmp);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
               
            }
            private static BitmapImage ConvertBitmapToBitmapImage(Bitmap wbm)
            {
                BitmapImage bimg = new BitmapImage();
                
                using (MemoryStream stream = new MemoryStream())
                {
                    wbm.Save(stream , System.Drawing.Imaging.ImageFormat.Png);
    
                    bimg.BeginInit();
                    stream.Seek(0, SeekOrigin.Begin);
                    bimg.StreamSource = stream;
                    bimg.CacheOption = BitmapCacheOption.OnLoad;
                    bimg.EndInit();
                }
                return bimg;
    
            }

     希望对你有一点点帮助!

  • 相关阅读:
    【蓝桥杯/算法训练】Sticks 剪枝算法 (附胜利大逃亡)
    【蓝桥杯/基础练习】回文数、特殊的回文数
    【蓝桥杯/基础练习】十六进制转八进制
    交叉验证
    第一次写博客---交叉验证
    实验五
    汇编语言第二章
    实验四
    实验三
    实验二
  • 原文地址:https://www.cnblogs.com/wywnet/p/3559917.html
Copyright © 2020-2023  润新知