个性二维码开源专题<前背景>

//设置图片资源

        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(0, 0, image.Width, image.Height));            for (int i = 0; i < matrix.Length; i++)
            {                for (int j = 0; 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(0, 0, image.Width, image.Height));            for (int i = 0; i < matrix.Length; i++)
            {                for (int j = 0; 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 / 4) / 2, (this.QrCodeH - this.QrCodeH / 4) / 2, this.QrCodeW / 4, this.QrCodeH / 4);//插入头像

            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 / 4) / 2, (this.QrCodeH - this.QrCodeH / 4) / 2, this.QrCodeW / 4, this.QrCodeH / 4);//插入头像

            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 / 4) / 2, (this.QrCodeH - this.QrCodeH / 4) / 2, this.QrCodeW / 4, this.QrCodeH / 4);//插入头像

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

oschina.net:

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

github:

https://github.com/cheng5x/YcQrCode

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

码晒客讨论QQ群:
28629273

时间: 2024-10-10 06:38:41

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

个性二维码开源专题 目录

目录 个性二维码开源专题<前序> 个性二维码开源专题<介绍篇> 个性二维码开源专题<基础篇> 个性二维码开源专题<替换元素点> 个性二维码开源专题<替换定位点> 个性二维码开源专题<液化/圆角/效果> 个性二维码开源专题<前背景> 个性二维码开源专题<后背景> 个性二维码开源专题<套入模版> . . . 个性二维码开源专题 目录,布布扣,bubuko.com

个性二维码开源专题&lt;液化/圆角/效果&gt;

基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // Forebrush: // 填充色 // // rect: // 区域 // // en_fillshape: // 填充形状枚举 // // fillshpape: // 填充形状参数 // // Backbrush: // 背景色 // // isOutside: // 是否外修改 public

个性二维码开源专题&lt;基础篇&gt;

二维码原理介绍: 二维码为什么是黑白相间的?黑色表示二进制的"1",白色表示二进制的"0" "我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中."黄海平说,"制作二维码输入的信息可以分成三类,文本信息,比如名片信息:字符信息,比如网址.电话号码:还有图片信息,甚至还可以包括简短的视频."数据信息是怎么被编入的呢?信息输入后,首先要选择一种信息编码的码制.现在常见的二维码都是以QR码作为编码的码制.

个性二维码开源专题&lt;替换定位点&gt;

基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // Forebrush: // 填充色 // // rect: // 区域 // // en_fillshape: // 填充形状枚举 // // fillshpape: // 填充形状参数 // // Backbrush: // 背景色 // // isOutside: // 是否外修改 public

个性二维码开源专题&lt;介绍篇&gt;

由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利. 疯狂创意二维码 疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信息输入到二维码生成器中,生成相应的个性二维码,然后输出为相应图片格式并保存.输入信息可以是:数字.网址.文字.微信.微博以及名片信息等,用户可以将想要生成二维码的信息批量导入,进行自动化批量生成导出处理. 码晒客 码晒客,由元创信息科技倾力打造,中国首款二维码个性制作神器,史上最能晒的二维码制作软件.该软件具备自动

即将开源,码晒客/疯狂创意二维码,个性二维码底层。

二维码: 二维码(Two-dimensional code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙.在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源.广告推送.网站链接.数据下载.商品交易.定位/导航.电子凭证.车辆管理.信息传递.名片交流.wifi共享等.如今智能手机扫一扫(简称313)功能的应用使得二维码更加普遍. 二维条码(二维码)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数

微信公众平台开发教程(六)获取个性二维码

微信公众平台开发教程(六)获取个性二维码 一.功能介绍 在进行推广时,我们可以告诉对方,我们的微信公众账号是什么,客户可以去搜索,然后关注.二维码给我们提供了极大的便捷,只要简单一扫描,即可关注. 如果已经关注过,立刻跳入对话画面.在我们进行推广时,不再是简陋的文字,可以是一个有个性的二维码,想必会很生动. 微信对二维码提供了很好的支持,而且还可以根据需要生成不同场景的二维码.下面我们将介绍如何获取和使用二维码. 注意:限服务号,且进行了微信认证,费用300 二.相关接口 为了满足用户渠道推广分

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

上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的测试程序:CaptureActivity比较复杂,我只要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自不必说了. 自带的例子,目录结构如下: 修改后的程序目录结构,去掉了很多功能,如果分享.设置等. 先上效果图          扫描ZXing生成的条形码和二维码结果 扫描界面 扫描商品的条码 整个程序只修改了以下两个类,其它都是直接从原来的Demo中复制出来的 生成二维码的代码 /** * 生成二维

免费在线生成彩色带logo的个性二维码

码工具网站提供免费的在线二维码生成服务,可以把网址.文本.电子邮件.短信.电话号码.电子名片.wifi网络等信息生成对应的二维码图片.你可以设置二维码图片的格式(png,jpg,gif).容错率.图片大小.颜色和LOGO图片等.该工具使用起来简单.便捷.功能强大. 即使你不是程序员,不会ps技术,也可以在线制作出来有创意的二维码,把普通黑白二维码在线设计的更加创意,更加个性,更加美化,把微信二维码编辑的更加创意吸引粉丝,做一个动态二维码名片更吸引客户用. 网站地址:http://www.mato