【WPF】生成二维码

时间:2022-04-10 17:03:54

第一步,下载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, , );
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 = ; x <height ; x++)
{
for (int y = ; 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(, SeekOrigin.Begin);
bimg.StreamSource = stream;
bimg.CacheOption = BitmapCacheOption.OnLoad;
bimg.EndInit();
}
return bimg; }

希望对你有一点点帮助!