C#生成二维码名片
摘自《31天学会CRM项目开发<C#编程入门级项目实战>》
本例将使用ThoughtWorks.QRCode类库生成二维码名片。正式编码前,先了解一下什么是vCard?它是一种用于定义电子名片的标准或规范。手机通信录可导出vCard格式。片段21-15是一段vCard格式的文本,从数据结构上看并不复杂,按照格式填充相关信息,以二维码方式输出。
BEGIN:VCARD
FN:张三
TITLE:技术总监
ORG:青岛**软件有限公司;ERP事业部
TEL;CELL:18605327777
TEL;WORK:+86 0532 86887777
TEL;WORK;FAX:+86 0532 86887778
ADR;WORK:青岛市市南区香港路100号
URL:www.huiyaosoft.com
EMAIL;WORK:admin@huiyaosoft.com
NOTE:
X-QQ:
PHOTO;ENCODING=b;TYPE=JPEG:
END:VCARD
主要开发步骤如下:
(1) 绘制窗体如图21-7所示

(2) 添加引用ThoughtWorks.QRCode.dll
(3)
片段21-16使用ThoughtWorks.QRCode将名片信息输出到pictureBox1上,信息量越大,二维码图片也就越大。如果图片比较
小,信息量比较大,所生成的二维码不易识别。行31-34演示了在二维码图片中添加Logo的方法,之所以可加入Logo是因为二维码自身有一定纠错能
力。
代码片段21-16
public static Bitmap GetTwoDimensionCode(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, , , 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 = ;
// 适用于信息量较少的情形,图像越小保存的信息量越少
// qrCodeEncoder.QRCodeScale = 4;
// 设置版本
qrCodeEncoder.QRCodeVersion = ;
// 设置错误校验的级别,正因为二维码有纠错能力,才能够加入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) / ;
int y = (int)(height - image.Height) / ;
objGraphics.DrawImage(image, new Point(x, y));
// 添加Logo图标
image = TwoDimensionCodeNameCard.Properties.Resources.Apps_tux_icon;
x = (int)(width - image.Width) / ;
y = (int)(height - image.Height) / ;
objGraphics.DrawImage(image, new Point(x, y));
return bmp;
}
代码片段21-16中,行34通过DrawImage()方法向objGraphics指定位置加入图像image,代码片段21-17演示了使用DrawString()方法向objGraphics指定位置增加字符串text的过程。
代码片段21-17
// 写入字符串
objGraphics.DrawString(text, new Font(fontName, , FontStyle.Bold),
Brushes.Black, new PointF(, ));
示例下载:http://download.csdn.net/detail/daiqianjie/9472868
C#生成二维码名片的更多相关文章
- 利用google api生成二维码名片例子
二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码.堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成:矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1” ...
- 利用google api生成二维码名片
利用google api生成二维码名片 二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码.堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成:矩阵式二维条码以矩阵的形式组成,在矩 ...
- ThoughtWorks.QRCode 生成二维码名片(实现二维码内容换行)
最近在写一个很简单的功能,按照Vcard的格式,生成二维码名片.本来以为分分钟完事的事情,替换数据,直接调用dll去生成二维码. 测试时,发现生成的二维码使用微信扫描得到的名片信息为空,反向解析发现, ...
- 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...
版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...
- 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...
http://blog.csdn.net/lidew521/article/details/24441825
- QRCode生成二维码,jq QRCode生成二维码,QRCode生成电子名片
[QRCode官网]http://phpqrcode.sourceforge.net/ PHP QRCode生成二维码 官网下载QRCode源码包,引入源码包中的 qrlib.php . <?p ...
- iOS开发之生成二维码
一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能 此前被广泛使用的zbarsdk目前不支持64位处理器 1.二维码的内容(传统的条形码只能放数字) 纯文本 名片 URL 2.生成二 ...
- 【Demo】 生成二维码 和 条形码
条形码 和 二维码 对比 一维条形码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于阅读器的对准. 在水平和垂直方向的二维空间存储信息的条形码, 称为 ...
- PHP生成二维码【谷歌API+qrcode+圆角Logo】
方法一:谷歌二维码API 接口地址:https://chart.googleapis.com/chart 官方文档:https://developers.google.com/chart/infogr ...
随机推荐
- Spring + iBatis 的多库横向切分简易解决思路
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- linux就是这个范儿之融于心而表于行(1)
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明.否则将追究法律责 时间总是过得那么快,如流水一般哗啦啦的就淌走了一大堆!周遭事事沧桑变迁喧哗或耳语中流传的故事已渐模糊 ...
- Spring 从零開始-03
这里说说bean装配集合.spring的支持的集合元素,其基本使用方式如同与Java的集合,所以假设对Java的集合不太了解的能够先找个帖子好好学习一下, 时间关系这里就不说了. ~~ list的样例 ...
- 05---JSON学习(Java)
一.简介 JSON:JavaScript对象表示法(JavaScript object Notation) JSON是存储和文本交换信息的语法 JSON ...
- iOS开发——数据持久化Swift篇&模型对象归档
模型对象归档 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextFie ...
- debian下图形化管理工具的安装
MySQL GUI Tools是一套图形化桌面应用工具套装,可以用来管理MySQL服务器.该套装工具包含三个工具:MySQL QueryBrowser.MySQL Administrator和MySQ ...
- xss脚本攻击
xss脚本攻击不仅仅只是alert(1)就算完了,xss脚本攻击真正的用处是盗取普通用户的cookie,或者盗取管理员的cookie. xss分类(类型): 1. 反射型xss2. 存储型xss3. ...
- C# 之 SqlConnection 类
一.常用属性 [1]ConnectionString 获取或设置用于打开 SQL Server 数据库的字符串. (重写 DbConnection.ConnectionString.) [2]Con ...
- 如何实现XA式、非XA式Spring分布式事务
Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式.理想的实现取决于你的应用程序使用何种资源,你 ...
- lvm基础
一.简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写. LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬 ...