当前位置:   article > 正文

通过编程做特别效果的个性“微信”二维码(思路)_wpf 矢量二维码

wpf 矢量二维码

注,这里只说编程思路,没有源代码。

先看效果:


图1 灯笼效果的二维码

从上图可以看到,其特征是:(1)整个外形为灯笼;(2)内部填充为二维码图像;(3)中间核心区域为我们真正所要的二维码;(4)二维码中还嵌入一个LOGO。

如何实现呢?

1、先来看看实现这些所需要的“原料”。

(1)首先必须有一个灯笼形的外框及填充用的二维码,如下图:


图2  灯笼形外框及填充用的二维码

为了读者观察和笔者描述更方便,我将两者合为一图,二维码的每个块也用红色框显示以示区别。

(2)其次,需要生成本例的核心二维码部分及加上用户LOGO,如下图:


图3  微信二维码(带LOGO)

细心的读者可能已发现,上面的二维码样式并非普通的二维码样式,而是已被圆角化的个性艺术二维码。

(3)根据目前实际情况,用户一般能提供一个普通的微信二维码样式,因此,我们在制作上面个性化二维码时,还必须经过先解码,得到微信地址,再编码生成个性化二维码。比如下图:


图4  用户提供的普通微信二维码样式

经过解码,得到微信的确切地址,上图经解码后得到的是:http://weixin.qq.com/r/OHV_cW7EqlDVh38SnyAc

(4)有了它,我们就可以通过程序生成圆角化样式的二维码了(具体制作过程,我这里是使用我自己写的二维码生成程序,见最后附图):


图5  核心部分:个性化的微信二维码

2、如何配齐上面的原料并完成绘制呢?

(1)图2所示的填充用的二维码用普通的二维码生成软件即可生成,我这里由于是自己写的程序,最终生成的是SVG矢量格式,其优点是可以再到其他矢量图形软件(比如Illustrator等)中进行编辑。

(2)灯笼外框一般是由用户提供或指定样式图片,有了图片,可以使用相关软件(比如Illustrator)生成矢量图形(比如AI格式图形),再转化为编程所用的GraphicsPath。

(3)将填充用的二维码图形填充到上面(2)中的GraphicsPath中,得到二维码的背景灯笼图。

(4)绘制一白色底的正方形外框,用以放置微信二维码。做这一步还有一个目的,就是增加二维码的可识别性。根据二维码标准,其白色外框区域宽度为单个二维码色块单元格的四倍。但根据实践来看,如果外围没有特别的干扰的话,保持适当白边(比如一倍于单元格区域)即可。

(5)绘制图5所示的核心部分,最终得到图1所示的效果。


结语:

上述过程涉及很多编程细节,比如:如何更好地实现背景灯笼图,特别是边缘部分,这里就涉及到区域及点测试。如下图就没有图1的效果那么自然:


图6  生硬的边缘

上图可以看到,灯笼边缘部分二维码的单元格色块被生硬地“切开”了。


附图:

测试用软件图:


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/272734
推荐阅读
相关标签
  

闽ICP备14008679号