Maven依赖

<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.4.1</version>
</dependency>

二维码

生成二维码

import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;public class DemoTest {public static void main(String[] args) throws Exception {// 二维码原理(将字符串信息通过一规则转换为图像)// 生成二维码String name = "d:/my.png";String content = "wwww.hcitlife.show";int width = 400;int height = 400;// BitMatrix bm = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height);Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();hints.put(EncodeHintType.MARGIN, 2);hints.put(EncodeHintType.CHARACTER_SET, "utf-8");BitMatrix bm = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);MatrixToImageWriter.writeToStream(bm, "png", new FileOutputStream(name));// BufferedImage bar = ImageIO.read(new File(name));// 解压读取二维码}}

结果:

import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;import javax.imageio.ImageIO;import java.awt.Color;
import java.awt.image.BufferedImage;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;public class DemoTest {public static void main(String[] args) throws Exception {// 二维码原理(将字符串信息通过一规则转换为图像)// 生成二维码String name = "d:/my.png";String content = "www.hcitlife.show";int width = 400;int height = 400;// BitMatrix bm = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE,// width, height);Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();hints.put(EncodeHintType.MARGIN, 2);hints.put(EncodeHintType.CHARACTER_SET, "utf-8");BitMatrix bm = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);MatrixToImageWriter.writeToStream(bm, "png", new FileOutputStream(name));BufferedImage bar = ImageIO.read(new File(name));BufferedImage ok = new BufferedImage(width, height, 1);ok.getGraphics().drawImage(bar, 0, 0, width, height, null);// System.out.println(String.format("%x", Color.RED.getRGB()));// int[][] px = new int[width][height];Random rand = new Random();Color c = new Color(rand.nextInt(255), rand.nextInt(255), rand.nextInt(255), rand.nextInt(255));for (int x = 0; x < width; x++) {for (int y = 0; y < height; y++) {ok.setRGB(x, y, bar.getRGB(x, y) == -1 ? 0xffffffff : c.getRGB());}// if(x>5) break;}ImageIO.write(ok, "png", new File("d:/mymy.png"));// BufferedImage bar = ImageIO.read(new File(name));// 解压读取二维码System.out.println("end");}}

解析二维码

import java.awt.image.BufferedImage;
import java.io.File;import javax.imageio.ImageIO;import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;public class DemoTest {public static void main(String[] args) throws Exception {// 解析读取二维码//解析图像BufferedImage i = ImageIO.read(new File("c:/my.png"));LuminanceSource source = new BufferedImageLuminanceSource(i);BinaryBitmap image = new BinaryBitmap(new HybridBinarizer(source));try{Result result = new MultiFormatReader().decode(image);String info = result.getText();System.out.println(info);if(info==null || "".equals(info)){System.out.println("没有二维码信息");}else if(info.contains("weixin")){  //qq mpSystem.out.println("有微信二维码,不允许");}else{System.out.println("有二维,可以使用");}}catch(Exception e){System.out.println("图像中没有二维码");}}}

条形码


import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.awt.Color;
import java.awt.Font;
import java.awt.RenderingHints;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;public class DemoTest {public static void main(String[] args) throws Exception {// 生成产品条码效果String name = "d:/bar.png";String content = "6923790798701";int width = 300;int height = 100;BitMatrix bm = new MultiFormatWriter().encode(content, BarcodeFormat.EAN_13, width, height);MatrixToImageWriter.writeToStream(bm, "png", new FileOutputStream(name));BufferedImage bar2 = ImageIO.read(new File(name));BufferedImage bar = new BufferedImage(bar2.getWidth(), bar2.getHeight() + 30, 1);Graphics2D g = bar.createGraphics();g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);g.setColor(Color.WHITE);g.fillRect(0, 0, bar2.getWidth(), bar2.getHeight() + 30);g.drawImage(bar2, 0, 15, bar2.getWidth(), bar2.getHeight(), null);g.fillRect(62, 100, 85, 15);g.fillRect(155, 100, 83, 15);g.setColor(Color.BLACK);g.setFont(new Font("", Font.PLAIN, 22));g.drawString(content.substring(0, 1), 40, 120);g.drawString(content.substring(1, 7), 68, 120);g.drawString(content.substring(7), 158, 120);g.dispose();ImageIO.write(bar, "png", new File("c:/bar2.png"));}}

Java 二维码及条形码处理相关推荐

  1. Java代码小demon(一)SpringBoot+二维码和条形码生成

    1. 简介 原由 需要一个工具类,可以将数据存储在二维码中,通过扫一扫可以获取到信息,条形码不能接受中文字符 收藏和转载以及自己应用时拓展,具体实现和底层原理还不会,有时间我会去了解或者忘记 借鉴博客 ...

  2. java-zxing扫描二维码和条形码(一维码)

    安装zxing 导入jar包不需要dll 扫描 package zxing;import java.awt.Image; import java.awt.image.BufferedImage; im ...

  3. Android ZXing二维码、条形码的生成,扫一扫demo

    目录 导语 一.ZXing简介 二.ZXing方法类源码 BarcodeFormat:条形码格式类 EncodeHintType:编码显示风格 三.ZXing使用实战小案例 生成二维码 生成条形码 四 ...

  4. Android ZXing 二维码、条形码扫描介绍

    最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个开源的 ZXing项目.它提供二维码和条形码的扫描.扫描条形码就是直接读取条形码的内容,扫描二维码是按照自己指 ...

  5. 二维码、条形码扫描——使用Google ZXing

    我在项目中用到了二维码扫描的技术,用的是Google提供的ZXing开源项目,它提供二维码和条形码的扫描.扫描条形码就是直接读取条形码的内容,扫描二维码是按照自己指定的二维码格式进行编码和解码. 可以 ...

  6. OpenCV(项目)二维码识别(二维码、条形码)

    目录 过程 1.获取图片中的二维码信息 2.获取视频中的二维码信息 3.检测出二维码框 4.显示数据 5.添加数据,判断二维码是否授权 5-1:.添加数据 5-2.读取文件信息,放入数组 5-3.判断 ...

  7. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

  8. 【opencv有趣应用】二维码和条形码的检测

    今天学习下使用opencv进行条形码和二维码的检测 import cv2 import numpy as np from pyzbar.pyzbar import decodedef cv_show_ ...

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

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

  10. Vue 移动端实现调用相机扫描二维码或条形码

    一.开发前的准备 实现二维码或条形码的扫描识别比较普遍的做法是去调用微信 JS-SDK 的扫一扫功能(详见 概述 | 微信开放文档),或者支付宝 H5 开放的API(详见?支付宝H5开放文档). 但是 ...

最新文章

  1. ZJU-java进阶笔记 第七周(输入输出)
  2. C#模糊查询绑定datagridview
  3. php接口图片转二进制,怎么在php项目中对图片进行二进制转换
  4. SpringMVC-组件分析之视图解析器(prefix,suffix)
  5. 致力协同办公oa系统服务器设置,致力协同办公oa系统安装手册新.pdf
  6. “新基建”横空出世,9本书助你把握7+2大领域风口
  7. 车联网发展对汽车经销商的影响
  8. HDMI 2.0高速电平转换芯片——LK361S20
  9. 模块四:应急预案参考模板
  10. oracle多表关联索引用法,关联表查询和索引使用的探讨一则
  11. 基本粒子群算法matlab 程序
  12. Arc consistency in CSPs
  13. 如何正确使用短信验证码
  14. 指标公式c语言源码下载,【通达信】九全指标-指标公式源码
  15. 微信PC(windows微信)HOOK
  16. 深度分析红米note9和华为nova8哪个好-红米note9和华为nova8区别
  17. 微信公众平台开发——群发信息
  18. mysql5.5手册读书日记(2)
  19. python 权限认证 impala_python操作具有kerberos认证的hive(impala)
  20. 哔咔服务器维护时间,哔咔

热门文章

  1. 计算机毕业论文房地产营销,万科集团四季花城房地产营销策略研究(毕业论文)...
  2. 【财经期刊FM-Radio|2021年03月13日】
  3. 线性代数笔记29——正定矩阵和最小值
  4. 攻防视角下的信息收集
  5. 去除桌面图标文字阴影的4种方法
  6. 【架构师面试-JVM原理-3】-JVM垃圾回收
  7. BouncyCastle配置
  8. python登陆百度网盘并读取自己的所有文件,输出到文本文件中
  9. 【Python语音分析】从绘制好看的波形图和语谱图开始
  10. 编码原则 之 Separation of Concerns