zoukankan      html  css  js  c++  java
  • 个性二维码开源专题<替换定位点>

    基础方法:

    ChangeFillShape

    //修改填充形状
    ChangeFillShape(...)
    // 摘要:
            //     修改填充形状
            //
            // 参数:
            //   g:
            //     图形画板
            //
            //   Fore
            //     填充色
            //
            //   rect:
            //     区域
            //
            //   en_fillshape:
            //     填充形状枚举
            //
            //   fillshpape:
            //     填充形状参数
            //
            //   Back
            //     背景色
            //
            //   isOutside:
            //     是否外修改
            public Graphics ChangeFillShape(Graphics g, Brush Forebrush, Rectangle rect, EN_FillShape en_fillshape, FillShape fillshpape, Brush Backbrush, bool isOutside = false);
    View Code

    ChangeFixedShape

    //修改定位点
    ChangeFixedShape(...)
            //
            // 摘要:
            //     修改定位方形
            //
            // 参数:
            //   en_FixedShape:
            //     定位方形枚举
            //
            //   g:
            //     图形画板
            //
            //   Fore
            //     填充色
            //
            //   rect:
            //     区域
            //
            //   en_fillshape:
            //     填充形状枚举
            //
            //   fillshpape:
            //     填充形状参数
            //
            //   Back
            //     背景色
            //
            //   x:
            //     X
            //
            //   y:
            //     Y
            //
            //   isOutside:
            //     是否外修改
            public Graphics ChangeFixedShape(EN_FixedShape en_FixedShape, Graphics g, Brush Forebrush, Rectangle rect, EN_FillShape en_fillshape, FillShape fillshpape, Brush Backbrush, int x, int y, bool isOutside = false);
    View Code

    1、重绘定位点

                        if (matrix[j][i])
                        {
                            ChangeFillShape(g, Forebrush, rect, EN_FillShape.FillRectangle, new FillShape(), Forebrush);
    
                            //重绘定位框
                            ChangeFixedShape(EN_FixedShape.Fixed1, g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush, j, i);
                            ChangeFixedShape(EN_FixedShape.Fixed2, g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush, j, i);
                            ChangeFixedShape(EN_FixedShape.Fixed3, g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush, j, i);
                        }
                        else
                        {
                            ChangeFillShape(g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
                        }
    View Code

    2、修改定位点

                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(), Forebrush);
    
                            //重绘定位框
                            ChangeFixedShape(EN_FixedShape.Fixed1, g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush, j, i);
                            ChangeFixedShape(EN_FixedShape.Fixed2, g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush, j, i);
                            ChangeFixedShape(EN_FixedShape.Fixed3, g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush, j, i);
                        }
                        else
                        {
                            ChangeFillShape(g, Backbrush, rect, EN_FillShape.FillRectangle, new FillShape(), Backbrush);
                        }
                    }
                }
                this.ChangeFixedShape(Backbrush, Forebrush, g, EN_FillShape.FillPeach, EN_FillShape.FillPeach, new FillShape(), new FillShape(), true);
                return image;
    View Code

    this.ChangeFixedShape(Backbrush, new SolidBrush(Color.Red), g, EN_FillShape.FillHeart, EN_FillShape.FillPeach, new FillShape(), new FillShape(), true);

    this.ChangeFixedShape(Backbrush, new SolidBrush(Color.Red), g, EN_FillShape.FillPeach, EN_FillShape.FillHeart, new FillShape(), new FillShape(), true);

    this.ChangeFixedShape(Backbrush, new SolidBrush(Color.Red), g, EN_FillShape.FillHeart, EN_FillShape.FillHeart, new FillShape(), new FillShape(), true);

    this.ChangeFixedShape(Backbrush, new SolidBrush(Color.Blue), g, EN_FillShape.FillPolygon, EN_FillShape.FillDiamond, new FillShape() { pointed=5}, new FillShape(), true);

    个性二维码开源专题<替换定位点>,在此介绍完毕了,谢谢大家的观看与支持。

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

    oschina.net:

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

    github:

    https://github.com/cheng5x/YcQrCode

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

    码晒客讨论QQ群:
    28629273

  • 相关阅读:
    has a / is a 的区别
    Linux头文件作用
    转一篇Decorator模式的讲解文章
    歌手推荐kate st. john
    拷贝构造函数和赋值构造函数声明为私有的作用
    重新认识C++中new的用法
    系统程序员成长计划容器与算法(二)(下)
    深入C++的new
    歌手推荐Cara Dillon
    浅析一道C++设计面试题
  • 原文地址:https://www.cnblogs.com/cheng5x/p/3796557.html
Copyright © 2011-2022 走看看