为了解决彩色二维码问题,提供一个自己开发的工具类QRCodeUtil:
下载jar包

<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.0</version>
</dependency><!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.4.0</version>
</dependency>

工具类开发

package com.tencent.wll.rqdj.util;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageConfig;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;public class QRCodeUtil {public static final QRCodeWriter QR_CODE_WRITER = new QRCodeWriter();/*** 生成二维码 字节数组* @param contents 内容* @param format 格式(如png)* @param width 宽* @param height 高* @return 二维码字节数组*/public static byte[] generate(String contents, String format, int width, int height) throws WriterException {try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {BitMatrix bitMatrix = QR_CODE_WRITER.encode(contents, BarcodeFormat.QR_CODE, width, height);MatrixToImageWriter.writeToStream(bitMatrix, format, os);return os.toByteArray();} catch (IOException e) {throw new RuntimeException(String.format("fail to writeToStream when generating qr code: text[%s]", contents), e);}}/*** 生成彩色二维码 字节数组* @param contents 内容* @param format 格式(如png)* @param width 宽* @param height 高* @param onColor 二维码颜色* @param offColor 背景色* @return 二维码字节数组*/public static byte[] generateWithColor(String contents, String format, int width, int height, int onColor, int offColor) throws WriterException {try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {Map<EncodeHintType, Object> hints = new HashMap<>();hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);hints.put(EncodeHintType.CHARACTER_SET, "utf-8");hints.put(EncodeHintType.MARGIN, 0);BitMatrix matrix = (new MultiFormatWriter()).encode(contents, BarcodeFormat.QR_CODE, width, height, hints);// 二维码为红色,背景色为绿色BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix, new MatrixToImageConfig(onColor, offColor));ImageIO.write(image, "png", os);return os.toByteArray();} catch (IOException e) {throw new RuntimeException(String.format("fail to writeToStream when generating qr code: text[%s]", contents), e);}}public static void main(String[] args) throws WriterException {byte[] qrcode = QRCodeUtil.generateWithColor("{\"trip_id\":1177290,\"plate_type\":9,\"plate_number\":\"WC8760\"," +"\"trip_code\":\"2592\"}", "png",250, 250, Color.RED.getRGB(), Color.GREEN.getRGB());byte[] encode = Base64.getEncoder().encode(qrcode);String s1 = new String(encode);System.out.println(s1.length());StringBuilder sb = new StringBuilder("<img id=\"img1\" src=\"data:image/png;base64,");sb.append(s1).append("\"/>");System.out.println(sb.toString());}
}

参考地址:

ZXing工具生成二维码以及解析二维码

Java 彩色个性化二维码

如何用#000000格式更改BufferedImage的颜色

ZXing开发彩色二维码相关推荐

  1. iOS 开发 二维码生成大全(黑白/彩色二维码和带图片的二维码)详解

    前言 扫描二维码使用的是coreImage框架,属于UIKit框架中的体系,多以使用时不用导入coreImage框架 开始之前,让我们谈谈Core Image框架中最重要的几个类: CIContext ...

  2. 生成彩色二维码(渐变色、插入图片和文字)

    花了一天时间,研究生成彩色的二维码程序. 下面是阶段性成果:渐变颜色.插入文字和log图片. 使二维码看起来更协调.更醒目.突出强调文字和logo,而不仅仅是一个信息的黑盒. 基于zxing的c#版本 ...

  3. Android实现二维码扫描功能-ZXing识别图片二维码,相册选图

    文章目录 1.演示 2.权限问题 3.实现步骤 4.工具类 5.图片Uri处理(重要更新) 1.演示 2.权限问题 部分朋友在打开相册时遇到读写权限未授权的问题,我在开发的时候没有遇到,也没有注册读写 ...

  4. Android彩色二维码带logo

    最近看到彩色二维码挺有意思,感觉我们常见的黑色二维码有些单调. 看了一下大牛们的博客,这里在大牛的基础上更改了一下.做了一个有颜色渐变的二维码. 在这里记录一下自己的学习成果.我这里用的是zxing- ...

  5. Android之自定义生成彩色二维码

    先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...

  6. 关于二维码分块上色(彩色二维码)的算法研究

    原文:关于二维码分块上色(彩色二维码)的算法研究 众所周知,二维码通常是黑白的,而且是由若干个长方形或正方形小块平铺而成.但从人们的审美角度来看,常见的黑白二维码不免让人审美疲劳.本文试着从分块上色的 ...

  7. java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例

    java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍  这里我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream o ...

  8. Python制作彩色二维码

    文章目录 1.安装myqr 2.生成二维码 3.动态二维码 4.彩色二维码 1.安装myqr 先在 pycharm 安装 myqr.或者,Python3 必装,然后命令行pip install myq ...

  9. [Python]使用QRCode生成彩色二维码

    一. 安装QRCode模块 QRCode模块依赖于Pillow模块,在安装QRCode模块前需要先安装Pillow模块.可使用如下命令安装: pip install Pillow QRCode模块安装 ...

  10. Zxing生成自定义二维码样式

    Zxing生成自定义二维码样式 现在几乎每个app都带有二维码,但是google提供的zxing包,只给我们提供了核心的二维码算法,而开发过程中经常有自定义二维码的样式的需求,这时候我们就要自己写工具 ...

最新文章

  1. 使用Def文件导出dll
  2. H5_ 多媒体video,autio使用示例
  3. gp3688 uhf2扩频_摩托罗拉GP3688对讲机(VHF、UHF)对讲机维修
  4. IBM MQ Explore使用
  5. EVEREST Ultimate Edition 4.50 Build 1330 Final
  6. Laravel的CURD操作
  7. android 开源病毒库,ClamAV+ClamTK,开源杀毒软件
  8. linux设置自动关机命令,Linux怎么用命令设置自动关机
  9. Python爬取新浪英超曼联文章内页--bs4,json,txt和csv以及编码
  10. pycharm显示中间变量
  11. 希尔贝壳受邀参会IEEE SLT 2021
  12. php 错误 异常,PHP错误异常处理
  13. 18 张图解支付宝钱包系统架构!
  14. Vista 兼容软件列表
  15. 计算机配置太低,安装Win10系统电脑配置太低怎么办
  16. ROS MoveIT2(humble)安装总结
  17. 最新ThinkPHP开发仿百度钱包源码红色优享钱包源码/接入第三方认证,去后门修复缺陷
  18. 从“棱镜门”事件看“洋”产品
  19. C语言CRC校验码计算与校验
  20. 微信小程序开发之——个人中心-介绍(1)

热门文章

  1. 漫画:什么是堆排序?
  2. 深入解读Docker底层技术cgroup系列(总览)
  3. linux内核C -- 第09课:链接过程中的强符号和弱符号
  4. linux以下C 利用openssl的AES库加密,解密
  5. pjproject编译方法与相关错误解决
  6. 音视频处理之FFmpeg封装格式20180510
  7. SNMP报文抓取与分析(一)
  8. mysql安装包设置本地yum源安装包_mysql 5.7.29 在centos7.6下超简单的本地yum源安装与配置...
  9. 计算机学院实验室安全管理办法,江苏大学计算机学院实验室安全管理制度
  10. php装箱,PHP实现的装箱算法示例