zoukankan      html  css  js  c++  java
  • 【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;
    
            }

     希望对你有一点点帮助!

  • 相关阅读:
    5.11实例应用
    VS2015调试
    4.4空间平滑
    4.3图像噪声
    4.2 傅里叶变换
    4.1 图像采样
    4.5.实例应用
    关于split和merge出错问题解决
    Ansible用于网络设备管理 part 3 使用NAPALM成品库
    记办公室小机房停电
  • 原文地址:https://www.cnblogs.com/wywnet/p/3559917.html
Copyright © 2011-2022 走看看