部分数据从下面这个链接来的,只是觉得代码比较冗余,所以........

想看的可以去看下:

C# 生成 联系人 二维码_勇敢小菜鸟的博客-CSDN博客NuGet 引用库不废话贴代码:using Gma.QrCodeNet.Encoding;using Gma.QrCodeNet.Encoding.Windows.Render;using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Text;usin.https://blog.csdn.net/u010209404/article/details/112574238

一、安装和效果图展示

后台安装Gma.QrCodeNet的Nuget包

VCard格式:

BEGIN:VCARD
VERSION:2.1
N:Gump;Forrest
FN:Forrest Gump
ORG:Gump Shrimp Co.
TITLE:Shrimp Man
TEL;WORK;VOICE:(111) 555-1212
TEL;HOME;VOICE:(404) 555-1212
ADR;WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:100 Waters Edge=0D=0ABaytown, LA 30314=0D=0AUnited States of America
ADR;HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
LABEL;HOME;ENCODING=QUOTED-PRINTABLE:42 Plantation St.=0D=0ABaytown, LA 30314=0D=0AUnited States of America
EMAIL;PREF;INTERNET:forrestgump@walladalla.com
REV:20080424T195243Z
END:VCARD

可以直接到草料网查看格式:

二维码扫码能看到效果图,如下:

二、贴后台代码

1.我这里是做保存二维码到桌面的,所以是直接生成二维码如何保存为一张图片了


/// <summary>
/// 生成VCard二维码
/// </summary>
/// <param name="url">数据路径</param>
///<returns></returns>
public string CreateGmaQrCodeNet(jrgt_mybusinesscard data)
{//这两个字段应该是必须要有的 这里我没测试if (string.IsNullOrWhiteSpace(data.myname) || string.IsNullOrWhiteSpace(data.myphone))return "please input Name and Tels value";var result = new StringBuilder();result.AppendLine("BEGIN:VCARD VERSION:3.0");//这个注释或者不注释好像都没报错信息的//result.AppendLine($"N:;{data.myname};;;");result.AppendLine($"FN:{data.myname}");if (!string.IsNullOrWhiteSpace(data.job))result.AppendLine($"TITLE:{data.job}");if (!string.IsNullOrWhiteSpace(data.myphone))result.AppendLine($"TEL;WORK;VOICE:{data.myphone}");if (!string.IsNullOrWhiteSpace(data.mypost))result.AppendLine($"EMAIL;PREF;INTERNET:{data.mypost}");if (!string.IsNullOrWhiteSpace(data.inst_name))result.AppendLine($"ORG:{data.inst_name}");if (!string.IsNullOrWhiteSpace(data.inst_address))result.AppendLine($"ADR;WORK:{data.inst_address}");result.AppendLine("END:VCARD");using (var ms = new MemoryStream()){string vcard = result.ToString();var encoder = new QrEncoder(ErrorCorrectionLevel.M);if (encoder.TryEncode(vcard, out QrCode qrCode)){var gRenderer = new GraphicsRenderer(new FixedModuleSize(2, QuietZoneModules.Two), Brushes.Black, Brushes.White);gRenderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);Image img = Image.FromStream(ms);//保存图片var filePath = @"C:\Users\admin\Desktop\112233\HelloWorld.png";img.Save(filePath, ImageFormat.Png);return "";}}
}

直接生成的二维码:

扫码安卓和ios的效果不同,图一安卓,图二ios,字段我只列了自己需要的字段

2.可以返回为Image格式值,然后接收生成二维码展示


/// <summary>
/// 生成VCard二维码
/// </summary>
/// <param name="url">数据路径</param>
///<returns></returns>
public Image CreateGmaQrCodeNet(jrgt_mybusinesscard data)
{if (string.IsNullOrWhiteSpace(data.myname) || string.IsNullOrWhiteSpace(data.myphone))throw new ValidateException("please input Name and Tels value");var result = new StringBuilder();result.AppendLine("BEGIN:VCARD VERSION:3.0");//result.AppendLine($"N:;{data.myname};;;");result.AppendLine($"FN:{data.myname}");if (!string.IsNullOrWhiteSpace(data.job))result.AppendLine($"TITLE:{data.job}");if (!string.IsNullOrWhiteSpace(data.myphone))result.AppendLine($"TEL;WORK;VOICE:{data.myphone}");if (!string.IsNullOrWhiteSpace(data.mypost))result.AppendLine($"EMAIL;PREF;INTERNET:{data.mypost}");if (!string.IsNullOrWhiteSpace(data.inst_name))result.AppendLine($"ORG:{data.inst_name}");if (!string.IsNullOrWhiteSpace(data.inst_address))result.AppendLine($"ADR;WORK:{data.inst_address}");result.AppendLine("END:VCARD");using (var ms = new MemoryStream()){string vcard = result.ToString();var encoder = new QrEncoder(ErrorCorrectionLevel.M);if (encoder.TryEncode(vcard, out QrCode qrCode)){var gRenderer = new GraphicsRenderer(new FixedModuleSize(2, QuietZoneModules.Two), Brushes.Black, Brushes.White);gRenderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);Image img = Image.FromStream(ms);//保存图片//var filePath = @"C:\Users\admin\Desktop\112233\HelloWorld.png";//img.Save(filePath, ImageFormat.Png);return img;}elsereturn null;}
}

接收VCard二维码,返回


/// <summary>
/// 电子名片格式
/// </summary>
/// <returns></returns>
public string PosterMyBusinessCardVCard(string mpId, WX_USERS wxUser, jrgt_mybusinesscard businessCardDto)
{GlobalTools.WriteLog("生成电子名片", 0, "进入PosterMyBusinessCardVCard");//获取分享的页面地址var page = Config.Value.WxIndexUrl;//获取活动IDvar belongId = Config.Value.ActivityId;//生成专属二维码var qrCode = CreateWeChatQrCode(page, $"refereeId={wxUser.WX_USER_ID}");//获取配置背景图片GlobalTools.GetCommonContent("BusinessCardBackage", 1, out _, out _, out var backContent);//获取logo图片GlobalTools.GetCommonContent("RECOMMEND_POSTERS", 2, out _, out _, out var logoContent);var backImg = ImageTool.FromBytes(backContent);backImg = MvcFramework.Common.Tools.CropImage(backImg, backImg.Width, backImg.Height, System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic);var logoImg = ImageTool.FromBytes(logoContent);logoImg = MvcFramework.Common.Tools.CropImage(logoImg, logoImg.Width, logoImg.Height, System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic);//微信头像处理var headImg = GetWxQrCode(wxUser, belongId);//合成图片文字var canvas = new Canvas(backImg);//获取用户配置的名片设置var mycardSet = UserBll.AccessMyBusinessCard(wxUser.WX_USER_ID);//获取图标显示GlobalTools.GetCommonContent("RECOMMEND_POSTERS_ICON", 1, out _, out _, out var iconContent1);var icon1 = ImageTool.FromBytes(iconContent1);icon1 = MvcFramework.Common.Tools.CropImage(icon1, icon1.Width, icon1.Height, System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic);GlobalTools.GetCommonContent("RECOMMEND_POSTERS_ICON", 2, out _, out _, out var iconContent2);var icon2 = ImageTool.FromBytes(iconContent2);icon2 = MvcFramework.Common.Tools.CropImage(icon2, icon2.Width, icon2.Height, System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic);GlobalTools.GetCommonContent("RECOMMEND_POSTERS_ICON", 3, out _, out _, out var iconContent3);var icon3 = ImageTool.FromBytes(iconContent3);icon3 = MvcFramework.Common.Tools.CropImage(icon3, icon3.Width, icon3.Height, System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic);//生成vcard电子名片二维码var vcardQrCode = CreateGmaQrCodeNet(businessCardDto);var empStr = $"{businessCardDto?.inst_name} / {businessCardDto?.job}";var font1 = new Font("新宋体", 40, FontStyle.Regular, GraphicsUnit.Pixel);Brush brush = new SolidBrush(Color.FromArgb(128, 92, 21));var font2 = new Font("新宋体", 26, FontStyle.Regular, GraphicsUnit.Pixel);var font3 = new Font("新宋体", 22, FontStyle.Regular, GraphicsUnit.Pixel);var resultImg = canvas.AddImage(headImg, 60, 40, 120, 120).AddImage(vcardQrCode, 500, 55, 180, 180)//.AddImage(qrCode, 500, 55, 180, 180).AddWord(businessCardDto.myname, 200, 50, font1, brush).AddWord(empStr, 200, 100, font2, brush).AddImage(icon1, 62, 194, 21, 21).AddWord(businessCardDto.myphone, 100, 190, font3, brush).AddImage(icon2, 62, 226, 21, 21).AddWord(businessCardDto.mypost, 100, 220, font3, brush).AddImage(icon3, 62, 260, 21, 21).AddWord(businessCardDto.inst_address, 100, 255, font3, brush).AddImage(logoImg, 290, 320, 184, 40).ToImage().ToString(ImageFormat.Png);canvas.Dispose();return resultImg;
}

小程序展示效果:

安卓和ios效果图如上

此记录为工作遇到的,完

.NetCore使用Gma.QrCodeNet生成二维码显示VCard名片格式相关推荐

  1. 生成二维码并以图片格式下载-qrcodejs2

    最近在做项目,碰到票据完成后的生成二维码以及提供下载功能,这里谈谈个人实战经验: 先上代码: 引入: html: js: 说明: 网上文章里提到的插件很多,但是好像并不是都有用(有点坑),实践之后发现 ...

  2. 微信小程序 地址 生成二维码显示

    使用的是 weapp-qrcode,源代码地址 https://github.com/tomfriwel/weapp-qrcode 效果图 项目中的代码 1.js页面引入js(js在github上自己 ...

  3. 字符串生成二维码并且批量打包下载

    所需依赖包 qrcode 二维码生成的插件库 jszip 用来打包压缩的一个库 file-saver 文件保存下载的插件库 npm install jszip npm install file-sav ...

  4. Luat 功能开发教程(十三) 生成二维码

    目录 二维码 API说明 实现流程 示例 生成二维码 显示二维码 扫码 常见问题 为什么烧录了生成二维码的demo以后运行会报错 相关资料以及购买链接 二维码 二维条码/二维码(2-dimension ...

  5. vue批量生成二维码并压缩打包下载(图片带标题)

    借鉴:原文~~~(但是有问题,在基础上改良) 效果图(生成的二维码带下面标题的): 代码如下: 先安装依赖(或者用命令:npm i jszip): yarn add jszip yarn add fi ...

  6. 安卓Zxing的简单使用-(生成二维码与扫一扫)

    前言:Zxing -github链接:https://github.com/zxing/zxing 1.效果图: zxing自带扫码界面(横屏) 自定义扫码界面 2. build.gradle中加入 ...

  7. 微信支付返回支付链接生成二维码问题

    微信支付返回的二维码格式为: weixin://wxpay/bizpayurl?pr= <img id="qrcodestr" src="{wechatUrl}&q ...

  8. .NetCore后台使用QrCode.Net根据网络链接生成二维码

    装一个QrCode.Net的Nuget包 后台代码: /// <summary> /// 根据路径生成二维码 /// </summary> /// <param name ...

  9. asp.net mvc 生成二维码

    生成二维码,帮助类: using Gma.QrCodeNet.Encoding; using Gma.QrCodeNet.Encoding.Windows.Render; using System; ...

最新文章

  1. java培训班如何选择
  2. liteos内核驱动和linux,移植RTOS必备基础知识
  3. Building designing UVA - 11039
  4. POI中设置Excel单元格格式
  5. 【多目标优化求解】基于matlab金鹰算法求解多目标优化问题【含Matlab源码 188期】
  6. 英语影响计算机专业,英语不好对于学习计算机编程来说到底有没有影响?
  7. 剑指 offer set 8 树的子结构
  8. 小凡模拟器(DynamipsGUI)打不开的简单解决方法
  9. PyQt5实现软键盘
  10. 查看电脑CPU是否支持虚拟化
  11. noi题目答案c语言,NOI2019基础知识题库
  12. 开发一款APP软件,需要哪些技术支持呢?
  13. 阿里云叔度:一场技术人的自我修行
  14. 基于Springboot+Vue2前后端分离框架的智慧校园系统源码,智慧学校源码+微信小程序+人脸电子班牌
  15. PiaolinPlatformV2.0.0 - 获取手机或电脑GPS位置信息(定位平台)
  16. vue 之 ele动态删除dom节点
  17. 大盘点 | 2020年「21篇」医学影像算法最佳综述
  18. 零基础如何学习Java和web前端
  19. R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作
  20. 1为数据库查询的数据中加一排序号,2判断为查询出来的字段赋值

热门文章

  1. 第二代计算机网络是以什么为标志,桑建平:数字化校园以什么为标志
  2. 在Windows系统中通过简单代码实现一键清理C盘垃圾文件
  3. 2023 QQ机器人云端系统源码 去后门版
  4. OpenCV图像处理--warpPerspective透视变换
  5. pythoneducoder苹果梨子煮水的功效_苹果梨禁忌,苹果梨煮水的功效(糖尿病患者禁食)...
  6. troff - groff 文档排版系统的 troff 处理器
  7. 搭建简易动态ip代理池
  8. 1060显卡支持dx12吗_“显卡危机”再次上演?Crytek发布光追测试程序Neon Noir
  9. 国内主要游戏公司及其引擎选用
  10. Spring 源码分析(四) ——MVC(二)概述