c# url链接转成二维码图片,再转成byte[]二进制流,输出到前段ajax
需要用到的 dll
添加引用
代码:
//获取配置文件设置的url
string urllink = ConfigurationManager.AppSettings["urllink"].ToString();
//转换成 链接
string link = "http://www.baidu.com"
//生成二维码
Bitmap asdasd = GetQRCodeByZXingNet(link);
//二维码图片 bitmap的基类是 image 所以进行强制转换
Image photoImg = asdasd as Image;
//转换成 bute[]
byte[] erjinzhi = GetByteImage(photoImg);
//新增 表 并它设置属性 的字段里面 请注意:此处后面必须为byte[]类型
ds.Tables[0].Columns.Add(" QRcode", typeof(byte[]));
保存
ds.Tables[0].Rows[0]["guoshou_QRcode"] = erjinzhi;
引用到的方法
链接转二维码图片
private static Bitmap GetQRCodeByZXingNet(String strMessage) { Bitmap result = null; try { BarcodeWriter barCodeWriter = new BarcodeWriter(); barCodeWriter.Format = BarcodeFormat.QR_CODE; barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8"); barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H); barCodeWriter.Options.Height = 50; barCodeWriter.Options.Width = 50; barCodeWriter.Options.Margin = 0; ZXing.Common.BitMatrix bm = barCodeWriter.Encode(strMessage); result = barCodeWriter.Write(bm); } catch (Exception ex) { //异常输出 } return result; }
图片转二进制
public static byte[] GetByteImage(Image img) { byte[] bt = null; if (!img.Equals(null)) { using (MemoryStream mostream = new MemoryStream()) { Bitmap bmp = new Bitmap(img); bmp.Save(mostream, System.Drawing.Imaging.ImageFormat.Jpeg);//将图像以指定的格式存入缓存内存流 bt = new byte[mostream.Length]; mostream.Position = 0;//设置留的初始位置 mostream.Read(bt, 0, Convert.ToInt32(bt.Length)); } } return bt; }
//需要注意 如报错 zxing 引用文件不存在,那么请把dll文件放到编译好后的 同你引用文件下的根目录下 或者bin文件下
本文来自博客园,作者:12不懂3,转载请注明原文链接:https://www.cnblogs.com/LZXX/p/8630002.html