用java 将 jb2 文件转图片的方法

简介: 用java 将 jb2 文件转图片的方法

引用包

<dependency>
  <groupId>com.levigo.jbig2</groupId>
  <artifactId>levigo-jbig2-imageio</artifactId>
  <version>2.0</version>
</dependency>

代码
//代码效果参考:http://www.zidongmutanji.com/zsjx/214531.html

复制代码
package r.a.h.grant.gbt33190;

import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;
import com.levigo.jbig2.JBIG2ImageReader;
import com.levigo.jbig2.JBIG2ImageReaderSpi;
import com.levigo.jbig2.io.DefaultInputStreamFactory;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageInputStream;
import java.awt.image.BufferedImage;
import java.io.*;

/**

  • grant
  • 4/6/2020 5:21 下午
  • 描述:
    */
    public class ImageTest {
    public static void main(String[] args) throws IOException, FormatException, ChecksumException, NotFoundException {

     String filepath = "/Users/grant/Documents/个人/image_108.jb2";
    
     int imageIndex = 0;
    
     InputStream inputStream = new FileInputStream(filepath);
     DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
     ImageInputStream imageInputStream = disf.getInputStream(inputStream);
    

    //代码效果参考:http://www.zidongmutanji.com/bxxx/447648.html

     JBIG2ImageReader imageReader = new JBIG2ImageReader(new JBIG2ImageReaderSpi());
     imageReader.setInput(imageInputStream);
    
     // long timeStamp = System.currentTimeMillis();
     BufferedImage bufferedImage = imageReader.read(imageIndex, imageReader.getDefaultReadParam());
    
     ImageIO.write(bufferedImage, "jpg", new File("/Users/grant/Documents/个人/image_108.jpg"));
    
     BinaryBitmap binaryBitmap= new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage)));
     QRCodeReader qrCodeReader = new QRCodeReader();
     Result result = qrCodeReader.decode(binaryBitmap);
     System.out.println(result.getText());
    

    }
    }

相关文章
|
1天前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
5 1
|
1天前
|
IDE Java 编译器
使用Java分割PDF文件
使用Java分割PDF文件
7 1
|
1天前
|
Java 索引
Java中indexOf() 方法详解
Java中indexOf() 方法详解
|
1天前
|
算法 安全 Java
Java代码优化方法和具体展示
Java代码优化方法和具体展示
|
1天前
|
算法 Java
Java将16进制的字符串转换为10进制数的方法
【6月更文挑战第27天】Java将16进制的字符串转换为10进制数的方法
8 0
|
1天前
|
Java
Java多线程notifyAll()方法
Java多线程notifyAll()方法
|
1天前
|
安全 Java Apache
十个方法破解Java生成随机密码的小窍门
十个方法破解Java生成随机密码的小窍门
|
2天前
|
存储 监控 Java
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
|
2天前
|
XML Java 定位技术
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版