//设置图片资源

        private Image imgAgo;
public override void SetParam()
{
base.SetParam(); // 读取前背景
string _imagePath = Environment.CurrentDirectory + @"\QrCodeModel\Images\Angry_Birds\boom.png";
imgAgo = Image.FromFile(_imagePath);
}

//在生成二维码之后,加入前背景图层

        //TODO:一系列个性二维码生成方案
public override Bitmap Encode(string content)
{
try
{
matrix = QrCodeEncoder.calQrcode(EnCoding.GetBytes(content));
}
catch { throw new Exception("内容超出范围,请选择更高版本或者降低容错率"); } this.SetParam(); SolidBrush Backbrush = new SolidBrush(QrCodeEncoder.QRCodeBackgroundColor);
//SolidBrush Backbrush = new SolidBrush(Color.Transparent);//背景透明
SolidBrush Forebrush = new SolidBrush(QrCodeEncoder.QRCodeForegroundColor); Bitmap image = new Bitmap(this.QrCodeW, this.QrCodeH);
Graphics g = Graphics.FromImage(image); Rectangle rect = new Rectangle(); g.FillRectangle(Backbrush, new Rectangle(, , image.Width, image.Height)); for (int i = ; i < matrix.Length; i++)
{
for (int j = ; j < matrix.Length; j++)
{
rect = new Rectangle((j + this.SpacingW) * QrCodeEncoder.QRCodeScale, (i + this.SpacingH) * QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale);
if (matrix[j][i])
{
ChangeFillShape(g, Forebrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
}
else
ChangeFillShape(g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
}
} //前背景
GraphicsPath _path = ImageFix.GetWindowRegion(image, QrCodeEncoder.QRCodeForegroundColor);
TextureBrush texture1 = new TextureBrush(new Bitmap(imgAgo, new Size(image.Width, image.Height)));
g.FillPath(texture1, _path);
return image;
}

//还可以设置,LOGO,头像等等

        //TODO:一系列个性二维码生成方案
public override Bitmap Encode(string content)
{
try
{
matrix = QrCodeEncoder.calQrcode(EnCoding.GetBytes(content));
}
catch { throw new Exception("内容超出范围,请选择更高版本或者降低容错率"); } this.SetParam(); SolidBrush Backbrush = new SolidBrush(QrCodeEncoder.QRCodeBackgroundColor);
//SolidBrush Backbrush = new SolidBrush(Color.Transparent);//背景透明
SolidBrush Forebrush = new SolidBrush(QrCodeEncoder.QRCodeForegroundColor); Bitmap image = new Bitmap(this.QrCodeW, this.QrCodeH);
Graphics g = Graphics.FromImage(image); Rectangle rect = new Rectangle(); g.FillRectangle(Backbrush, new Rectangle(, , image.Width, image.Height)); for (int i = ; i < matrix.Length; i++)
{
for (int j = ; j < matrix.Length; j++)
{
rect = new Rectangle((j + this.SpacingW) * QrCodeEncoder.QRCodeScale, (i + this.SpacingH) * QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale, QrCodeEncoder.QRCodeScale);
if (matrix[j][i])
{
ChangeFillShape(g, Forebrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
}
else
ChangeFillShape(g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
}
} //Logo
Image _logoImg = imgAgo;
g.DrawImage(_logoImg, (this.QrCodeW - this.QrCodeW / ) / , (this.QrCodeH - this.QrCodeH / ) / , this.QrCodeW / , this.QrCodeH / );//插入头像
return image;
}

//为了可印刷名片、图册,可以去色

            //Logo
Image _logoImg = imgAgo;
_logoImg = ImageFix.Blocks((Bitmap)_logoImg);
_logoImg = ImageFix.ColorReplace((Bitmap)_logoImg, Color.Black, QrCodeEncoder.QRCodeForegroundColor); g.DrawImage(_logoImg, (this.QrCodeW - this.QrCodeW / ) / , (this.QrCodeH - this.QrCodeH / ) / , this.QrCodeW / , this.QrCodeH / );//插入头像 return image;

//还可以自由配色

            //Logo
Image _logoImg = imgAgo;
_logoImg = ImageFix.Blocks((Bitmap)_logoImg);
_logoImg = ImageFix.ColorReplace((Bitmap)_logoImg, Color.Black, Color.Blue); g.DrawImage(_logoImg, (this.QrCodeW - this.QrCodeW / ) / , (this.QrCodeH - this.QrCodeH / ) / , this.QrCodeW / , this.QrCodeH / );//插入头像

以下是开源地址,国外github,国内oschina.net

oschina.net:

http://git.oschina.net/cheng5x/Yc.QrCode

github:

https://github.com/cheng5x/YcQrCode

官方网站:
http://original-ad.com

码晒客讨论QQ群:
28629273

个性二维码开源专题<前背景>的更多相关文章

  1. 个性二维码开源专题<后背景>

    //设置图片资源 private Image img1; public override void SetParam() { base.SetParam(); //读取图片 string _image ...

  2. 个性二维码开源专题<液化/圆角/效果>

    基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // F ...

  3. 个性二维码开源专题<替换元素点>

    基础方法:ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // Fo ...

  4. 个性二维码开源专题<替换定位点>

    基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // F ...

  5. 个性二维码开源专题<介绍篇>

    由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利. 疯狂创意二维码 疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信息输入到二维码生 ...

  6. 个性二维码开源专题<基础篇>

    二维码原理介绍: 二维码为什么是黑白相间的?黑色表示二进制的“1”,白色表示二进制的“0” “我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中.”黄海平说,“制作二维码输 ...

  7. Android二维码开源项目zxing用例简化和生成二维码、条形码

    上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...

  8. 你只要5行代码,拥有你的个性二维码,用Python生成动态二维码

    如果想了解更多关于python的应用,可以私信我,或者点击下方链接自行获取,里面到资料都是免费的(http://t.cn/A6Zvjdun) 二维码满天飞,但是有没有想过Python也能制作出专属于自 ...

  9. 二维码开源库ZBar-吐槽篇

    前不久在网上看到一篇文章<QR-Decoder-OV5640 二维码识别> ,是某开发板的教程.记得对应的开发板以前购买过,当初只是为了看OV5640的JPG的输出效果,结果由于公司奇葩的 ...

随机推荐

  1. MsSqlServer 复制分发概述

    Replication方案可以分为Snapshot Replication, Transactional Replication, Peer-2-Peer Replication, Merge Rep ...

  2. 第五百八十二天 how can I 坚持

    好吧,是我错了,昨天,做好自己就行了,别人怎么样是别人的事,永远保持一颗单纯向上的心. 时间过得真快,明天又周六了.. 睡觉.

  3. Delphi调用REST

    Delphi调用REST很简单,首先在界面上放上: RESTClient1: TRESTClient; RESTRequest1: TRESTRequest; RESTResponse1: TREST ...

  4. 练习JavaWeb连接数据库

    1.添加jar包. 建立动态java项目,在Web-INF文件夹下的lib文件夹里添加jar包. 区别:java中添加的jar包需要添加构建路径,而javaWeb中添加的jar不需要构建路径,自动添加 ...

  5. [笔记]Altera系列01:常用资料下载链接

    Altera官方文档 Altera Product Catalog 外部存储器规范估算器 To be continued.

  6. SQL常用代码收集

    1.存储过程中,使用in查询时的参数处理方式 使用情形描述:传入存储过程的参数为一个字符串@IDs,以固定分隔符连接 新建字符串分割函数,然后将分割结果传入存储过程: CREATE FUNCTION ...

  7. detection reading

    1512.07729v1 G-CNN an Iterative Grid Based Object Detector,先基于空间金字塔生成很多矩形框,然后把这些矩形框作为regions,进行fast ...

  8. Kindeditor为什么提交后获取不到值

    LinkButton不是表单提交方式所以获取不到.如果用button submit提交方式就是form提交方式后台就能获取到值 取得编辑器的HTML内容.KindEditor的可视化操作在新创建的if ...

  9. 2.Java对象创建

    1. 对象的创建 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初始化过.如果没有,那必须先执行相应的类 ...

  10. js资源

    http://www.oschina.net/p/ace-editor https://git.oschina.net/pandao/editor.md/blob/master/editormd.js ...