如何检测图片中是否含有二维码 - 白豆五

时间:2024-02-01 10:08:54

如何检测图片中是否含有二维码

1、首先在IDEA中创建一个普通的Maven项目。



ok我们已经成功创建一个Maven项目!

2、向pom.xml中导入依赖。


maven仓库:https://mvnrepository.com/

进入maven仓库之后搜索:yzk18:

选择一个最新的版本:

然后将下面的maven依赖坐标copy到pom.xml文件中。

<!-- https://mvnrepository.com/artifact/com.yzk18/yzk18-commons -->
<dependency>
    <groupId>com.yzk18</groupId>
    <artifactId>yzk18-commons</artifactId>
    <version>1.5</version>
</dependency>

然后我们准备在一个文件夹里放入几张带二维码的图片和不带二维码的图片。

3、helloworld

分析:

  • 首先扫描一个文件夹下的所有图片文件;
  • 然后查看是否存在带二维码的图片,如果有的话就输出"有宣传性二维码图片",否则就提示"检测通过"。

(1)获取图片文件并打印出来。

import com.yzk18.commons.IOHelpers;

import java.util.Arrays;

public class QRCodeFound {
    public static void main(String[] args) {
        // 1、递归扫描一个文件夹下的所有图片文件
        String[] files = IOHelpers.getFilesRecursively("D:\\temp\\test1", "png", "jpg", "gif");
        System.out.println(Arrays.toString(files));

        //2、通过增强for遍历每一个文件
        for (String file:files){
            System.out.println(file);
        }
    }
}

(2)检查图片中是否含有二维码。

import com.google.zxing.Result;
import com.yzk18.commons.IOHelpers;
import com.yzk18.commons.QRCodeHelpers;

import java.util.Arrays;

public class QRCodeFound {
    public static void main(String[] args) {
        // 1、递归扫描一个文件夹下的所有图片文件
        String[] files = IOHelpers.getFilesRecursively("D:\\temp\\test1", "png", "jpg", "gif");
        System.out.println(Arrays.toString(files));

        //2、通过增强for遍历每一个文件
        for (String file : files) {
            //System.out.println(file);
            // 3、经过试验猜测发现:如果图片中不含有二维码,则返回值为null
            Result result = QRCodeHelpers.parseImage(file);
            if (result != null) {
                System.out.println("有宣传性二维码图片");
            }

        }
    }
}

(3)完善:如果发现有二维码的图片出现就不让它放行吧