生成名片二维码

 

<a title="生成二维码" href="javascript:;" onclick="CrCard('@item.pk_employee')" style="text-decoration:none"><i class="Hui-iconfont">&#xe63b;</i></a> 

 function msg(src) {
        //配置一个透明的询问框
        layer.msg('<img src="'+src+'" >', {
            time: 200000, //20s后自动关闭
            btn: ['关闭']
        });
    }
    //页面层
    function open(src){
    layer.open({
        type: 1,
       // offset: '100px',
        title: "员工名片二维码",
        skin: 'demo-class',
        area: ['300px', '300px'], //宽高
        content: '<div style="text-align:center"><img src="' + src + '" ></div>',
        btn: '关闭'
        });
    }
    function CrCard(id) {
        $.post("/StaffManagement/EmployeeInfo/creQRcode?id=" + id, {},function (d) {
            //msg(d);
            open(d);
        },'text')
    }
using System.Drawing;
using System.Drawing.Imaging;
引用ThoughtWorks.QRCode.dll插件
public ActionResult creQRcode(string id) { var query = db.t_employeeInfo.Where(e => e.pk_employee == id).FirstOrDefault(); string name = query.name == "" ? "暂无" : query.name; string tel =query.cellPhone== null ? "400 XXX 421" : query.cellPhone; string TITLE = query.cellPhone == null ? "400 XXXX 421" : query.cellPhone; string ORG =query.fk_unit== null ? "暂无" : query.fk_unit; string ADR = "地址" ; string URL = "http://www.XX.cn/";//个人主页 string EMAIL = query.email == null ? "邮箱" : query.email; StringBuilder card = new StringBuilder(); card.Append("BEGIN:VCARD"); card.Append("\r\nFN:" + name);//姓名 card.Append("\r\nTEL;CELL:" + tel);//手机号 card.Append("\r\nTITLE:" + TITLE);// card.Append("\r\nORG:" + ORG); card.Append("\r\nTEL;WORK:" + "400-6690421"); card.Append("\r\nADR;WORK:" + ADR); card.Append("\r\nURL:" + URL); card.Append("\r\nEMAIL;WORK:" + EMAIL); card.Append("\r\nEND:VCARD\r\n"); Bitmap bmp = GetCard(card.ToString(), string.Empty, 200, 200, "微软雅黑"); string path = "~/Upload/MyCard/"; string path2 = Request.MapPath(path); if (!Directory.Exists(path2)) { Directory.CreateDirectory(path2); } string guid = Guid.NewGuid().ToString(); string newPath = path2 + guid + ".jpg"; bmp.Save(newPath, ImageFormat.Jpeg); string src = "/Upload/MyCard/" + guid + ".jpg"; return Content(src); } /// <summary> /// 绘制二维码 /// </summary> /// <param name="strSource"></param> /// <param name="text"></param> /// <param name="width"></param> /// <param name="height"></param> /// <param name="fontName"></param> /// <returns></returns> public static Bitmap GetCard(string strSource,string text,int width,int height,string fontName) { //创建Bitmap对象 Bitmap bmp = new Bitmap(width,height); //从image创建Graphics对象 Graphics objgraphics = Graphics.FromImage(bmp); //填上背景色 objgraphics.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height); ThoughtWorks.QRCode.Codec.QRCodeEncoder qRCodeEncoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder(); //设置编码方法 qRCodeEncoder.QRCodeEncodeMode= ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE; //设置大小 qRCodeEncoder.QRCodeScale = 3; // 适用于信息量较少的情形,图像越小保存的信息量越少 // qrCodeEncoder.QRCodeScale = 4; // 设置版本 qRCodeEncoder.QRCodeVersion = 0; // 设置错误校验的级别,正因为二维码有纠错能力,才能够加入logo qRCodeEncoder.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.M; Image image = qRCodeEncoder.Encode(strSource, Encoding.GetEncoding("utf-8")); // 写入二维码 int x = (int)(width - image.Width) / 2; int y = (int)(height - image.Height) / 2; objgraphics.DrawImage(image, new Point(x, y)); // 添加Logo图标 image = YHFYWebSite.Properties.Resources.logo; x = (int)(width - image.Width) / 2; y = (int)(height - image.Height) / 2; objgraphics.DrawImage(image, new Point(x, y)); return bmp; }

 

posted @ 2017-11-10 16:30  苏苏苏en  阅读(100)  评论(0编辑  收藏  举报