今天又突发奇想,觉得黑白色的二维码太单调,如果能画出彩色的二维码一定很炫。
我以前也用过一些网上的小工具给一个url生成二维码。虽然不懂二维码的原理,但是我的理解就是将一个字符串编码成一个数字矩阵,然后将矩阵里面的数字对应到颜色,就制成了一个二维码图片。
于是开始在网上搜索用R来生成二维码的包,结果发现真的有人已经用R开发了这样的工具:
https://github.com/hrbrmstr/qrencoder
在安装qrencoder之前,要先装好以下几个R包:Rcpp, base64enc, raster, png。由于qrencoder是基于libqrencode生成二维码, 所以还要安装 libqrencode:
https://github.com/fukuchi/libqrencode
安装过程很顺利,这里就不赘述了。
下面是我的制作过程:
-
准备好logo图片和需要编码的url(我的简书主页):http://www.jianshu.com/users/6ca6e45e2bd8/latest_articles
-
先将url转换成0-1矩阵,再将矩阵中的1随机替换成1,2,3(表示其他三种颜色)
-
用pheatmap画没有logo的二维码
-
读入原始二维码和logo文件,将两个图片merge在一起
具体代码如下:
code.png随便画了几个二维码,看看效果怎样。经过手机扫描测试,全部能顺利打开我的简书主页。
qrcode1.jpeg qrcode2.jpeg qrcode3.jpeg qrcode4.jpeg在选择颜色的时候要注意,尽量选择比较深的颜色,如果和白色背景的对比度不高,会影响扫描的效果。
这只是一个app的雏形,我们可以在这个基础上用Shiny制作一个真正的Web工具供大家使用。
今天的R图秀就结束了,感兴趣的Rapper们可以尝试着选择自己喜欢的颜色打造一个炫酷而又个性的二维码。Let's Rapp!
网友评论