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文件下

 

posted @ 2018-03-23 14:06  12不懂3  阅读(977)  评论(0编辑  收藏  举报
创作不易,请勿抄袭,欢迎转载!