一灰灰blog 一灰灰blog
首页
  • InfluxDB
  • MongoDB
  • MySql
  • 基础系列
  • DB系列
  • 搜索系列
  • MQ系列
  • WEB系列
  • 中间件
  • 运维
  • SpringSecurity
  • SpringCloud
  • QuickAlarm
  • QuickCrawer
  • QuickFix
  • QuickMedia
  • QuickSpi
  • QuickTask
  • 分类
  • 标签
  • 归档
  • 收藏
  • 关于
GitHub (opens new window)

一灰灰blog

资深搬运工
首页
  • InfluxDB
  • MongoDB
  • MySql
  • 基础系列
  • DB系列
  • 搜索系列
  • MQ系列
  • WEB系列
  • 中间件
  • 运维
  • SpringSecurity
  • SpringCloud
  • QuickAlarm
  • QuickCrawer
  • QuickFix
  • QuickMedia
  • QuickSpi
  • QuickTask
  • 分类
  • 标签
  • 归档
  • 收藏
  • 关于
GitHub (opens new window)
  • QuickAlarm

  • QuickCrawer

  • QuickFix

  • QuickMedia

    • Java 借助ImageMagic实现图片编辑服务
    • Quick-Media-Java生成艺术二维码也可以很简单
    • Quick-Media-中文二维码支持
    • Quick-Media-前置渲染模板支持
      • II. 其他
        • 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
        • 2. 声明
        • 3. 扫描关注
    • QuickMedia升级2.6.0
    • Quick-Media-中秋到了,是时候给你的二维码加个月饼了
  • QuickSpi

  • QuickTask

  • Quick开源系列
  • QuickMedia
一灰灰
2021-01-23

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>
1
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");
1
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");
1
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();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

使用气泡生成的动图

使用脚丫子生成的动图

再比如加一个动态的logo

当然由于没有设计大佬支持,以上的图从网上找的资源合成,所以美观上很有不足,以上主要是为了演示Quick-Media能支撑的力度

欢迎设计大佬友情提供更多模板

欢迎有兴趣的开发大佬使用尝鲜,源码地址,觉得不错的请☆

  • https://github.com/liuyueyi/quick-media (opens new window)

# II. 其他

# 1. 一灰灰Blog (opens new window): https://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

# 2. 声明

尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

  • 微博地址: 小灰灰Blog (opens new window)
  • QQ: 一灰灰/3302797840

# 3. 扫描关注

一灰灰blog

QrCode

编辑 (opens new window)
#二维码#Java#QuickMedia
上次更新: 2021/10/15, 19:56:22
Quick-Media-中文二维码支持
QuickMedia升级2.6.0

← Quick-Media-中文二维码支持 QuickMedia升级2.6.0→

最近更新
01
【WEB系列】从0到1实现自定义web参数映射器
01-23
02
【WEB系列】如何支持下划线驼峰互转的传参与返回
01-17
03
【DB系列】Mybatis之批量插入的几种姿势
01-11
更多文章>
Theme by Vdoing | Copyright © 2017-2022 一灰灰Blog
MIT License | 鄂ICP备18017282号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×