Java端”最强”二维码渲染工具又双叒叕升级了,新增前置模板渲染,简单几行代码即可实现酷炫的二维码生成
项目源码:https://github.com/liuyueyi/quick-media
首先理解一下前置渲染模板和背景图的实现区别,对于背景图而言,可以简单的理解为是将二维码放在背景图上一层,因此我们可以实现给二维码添加底色,背景样式等;而前置渲染模板则是将二维码放在下层,可以在上面再套一层图片
因此当我希望给二维码添加一些装饰时,使用前置渲染模板就是更好的选择了,如下图

I. 使用说明
更多详细用法推荐查看: Quick-Media二维码使用手册: https://liuyueyi.github.io/quick-media
添加pom依赖
| 12
 3
 4
 5
 6
 
 | <dependency>
 <groupId>com.github.liuyueyi.media</groupId>
 <artifactId>qrcode-plugin</artifactId>
 <version>2.5.3</version>
 </dependency>
 
 | 
第二步准备素材,我们现在以https://cdn.pixabay.com/photo/2017/06/14/12/58/heart-2402086_960_720.png 为前置图,生成一个爱心的二维码
使用姿势如下
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | String msg = "http://weixin.qq.com/r/FS9waAPEg178rUcL93oH";int size = 500;
 QrCodeGenWrapper.of(msg)
 .setW(size)
 .setH(size)
 .setDrawPreColor(Color.RED)
 .setFtImg("https://cdn.pixabay.com/photo/2017/06/14/12/58/heart-2402086_960_720.png")
 .setFtStartX(110)
 .setFtStartY(120)
 .asFile("/tmp/imgQr3.png");
 
 | 
生成二维码效果如下

除了上面的case之外,我们还可以针对二维码本身进行一些定制化,如使用我自己的素材来替换二维码的小方块
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | String msg = "http://weixin.qq.com/r/FS9waAPEg178rUcL93oH";int size = 500;
 boolean ans = QrCodeGenWrapper.of(msg)
 .setW(size)
 .setH(size)
 .setDrawBgColor(ColorUtil.OPACITY)
 .setDetectImg("love/01.png")
 .setDrawStyle(QrCodeOptions.DrawStyle.IMAGE)
 .addImg(1, 1, "love/003_01.png")
 .addImg(4, 1, "love/004.png")
 .addImg(1, 4, "love/004_02.png")
 .setFtImg("https://cdn.pixabay.com/photo/2017/06/14/12/58/heart-2402086_960_720.png")
 .setFtStartX(110)
 .setFtStartY(120)
 .asFile("/tmp/imgQr2.png");
 
 | 

难道号称Java界最强的二维码渲染工具,就仅止与此么?
当然不,接下来让我们的二维码动起来,选择一个gif的前置渲染图,借助搜索工具,从 http://daimadaquan.blog.sohu.com/134743858.html 选择一张动图测试一下 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | @Testpublic void testPreGif() {
 String pre = "http://1832.img.pp.sohu.com.cn/images/blog/2009/10/23/20/24/12530644e76g215.jpg";
 try {
 
 int qrSize = 240;
 String msg = "http://weixin.qq.com/r/FS9waAPEg178rUcL93oH";
 QrCodeGenWrapper.of(msg)
 .setW(qrSize)
 .setH(qrSize)
 .setDrawPreColor(0xff73a7f5)
 .setDrawEnableScale(true)
 .setFtImg(pre)
 .setFtStartX(95)
 .setFtStartY(0)
 .setFtFillColor(Color.WHITE)
 .asFile("/tmp/ft_0.gif");
 
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 
 | 
使用气泡生成的动图

使用脚丫子生成的动图

再比如加一个动态的logo

当然由于没有设计大佬支持,以上的图从网上找的资源合成,所以美观上很有不足,以上主要是为了演示Quick-Media能支撑的力度
欢迎设计大佬友情提供更多模板
欢迎有兴趣的开发大佬使用尝鲜,源码地址,觉得不错的请☆
II. 其他
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
3. 扫描关注
一灰灰blog
