Quick-Media-前置渲染模板支持
Java端"最强"二维码渲染工具又双叒叕升级了,新增前置模板渲染,简单几行代码即可实现酷炫的二维码生成
项目源码:https://github.com/liuyueyi/quick-media (opens new window)
首先理解一下前置渲染模板和背景图的实现区别,对于背景图而言,可以简单的理解为是将二维码放在背景图上一层,因此我们可以实现给二维码添加底色,背景样式等;而前置渲染模板则是将二维码放在下层,可以在上面再套一层图片
因此当我希望给二维码添加一些装饰时,使用前置渲染模板就是更好的选择了,如下图
# I. 使用说明
更多详细用法推荐查看: Quick-Media二维码使用手册: https://liuyueyi.github.io/quick-media (opens new window)
添加pom依赖
<!-- https://mvnrepository.com/artifact/com.github.liuyueyi.media/qrcode-plugin -->
<dependency>
<groupId>com.github.liuyueyi.media</groupId>
<artifactId>qrcode-plugin</artifactId>
<version>2.5.3</version>
</dependency>
2
3
4
5
6
第二步准备素材,我们现在以https://cdn.pixabay.com/photo/2017/06/14/12/58/heart-2402086_960_720.png
为前置图,生成一个爱心的二维码
使用姿势如下
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");
2
3
4
5
6
7
8
9
10
生成二维码效果如下
除了上面的case之外,我们还可以针对二维码本身进行一些定制化,如使用我自己的素材来替换二维码的小方块
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");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
难道号称Java界最强的二维码渲染工具,就仅止与此么?
当然不,接下来让我们的二维码动起来,选择一个gif的前置渲染图,借助搜索工具,从 http://daimadaquan.blog.sohu.com/134743858.html (opens new window) 选择一张动图测试一下
@Test
public 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();
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
使用气泡生成的动图
使用脚丫子生成的动图
再比如加一个动态的logo
当然由于没有设计大佬支持,以上的图从网上找的资源合成,所以美观上很有不足,以上主要是为了演示Quick-Media能支撑的力度
欢迎设计大佬友情提供更多模板
欢迎有兴趣的开发大佬使用尝鲜,源码地址,觉得不错的请☆
# II. 其他
# 1. 一灰灰Blog (opens new window): https://liuyueyi.github.io/hexblog
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
# 2. 声明
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址: 小灰灰Blog (opens new window)
- QQ: 一灰灰/3302797840
# 3. 扫描关注
一灰灰blog