1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 工具类实现Base64二维码图片识别

java 工具类实现Base64二维码图片识别

时间:2022-02-09 03:10:31

相关推荐

java 工具类实现Base64二维码图片识别

工具类已经实现Base64二维码图片识别路径图片识别

所需maven依赖

<!--二维码生成和解析相关的jar包【生成】【解析】-->

<dependency>

<groupId>com.google.zxing</groupId>

<artifactId>javase</artifactId>

<version>3.2.1</version>

</dependency>

<!-- /artifact/com.google.zxing/core -->

<dependency>

<groupId>com.google.zxing</groupId>

<artifactId>core</artifactId>

<version>3.3.3</version>

</dependency>

工具类代码,直接复制修改package可用

package mon.utils.qrcode;import com.google.zxing.*;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.mon.HybridBinarizer;import sun.misc.BASE64Decoder;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;/*** 作用:二维码识别(图片)* 作者:Tiddler* 时间:-08-/8/31 16:23* 类名:QRCodeTools**/public class QRCodeTools {/*** 解析二维码解析,此方法是解析Base64格式二维码图片* baseStr:base64字符串,data:image/png;base64开头的*/public static String deEncodeByBase64(String baseStr) {String content = null;BufferedImage image;BASE64Decoder decoder = new BASE64Decoder();byte[] b=null;try {int i = baseStr.indexOf("data:image/png;base64,");baseStr = baseStr.substring(i+"data:image/png;base64,".length());//去掉base64图片的data:image/png;base64,部分才能转换为byte[]b = decoder.decodeBuffer(baseStr);//baseStr转byte[]ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(b);//byte[] 转BufferedImageimage = ImageIO.read(byteArrayInputStream);LuminanceSource source = new BufferedImageLuminanceSource(image);Binarizer binarizer = new HybridBinarizer(source);BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");Result result = new MultiFormatReader().decode(binaryBitmap, hints);//解码System.out.println("图片中内容: ");System.out.println("content: " + result.getText());content = result.getText();} catch (IOException e) {e.printStackTrace();} catch (NotFoundException e) {e.printStackTrace();}return content;}/*** 解析二维码,此方法解析一个路径的二维码图片* path:图片路径*/public static String deEncodeByPath(String path) {String content = null;BufferedImage image;try {image = ImageIO.read(new File(path));LuminanceSource source = new BufferedImageLuminanceSource(image);Binarizer binarizer = new HybridBinarizer(source);BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");Result result = new MultiFormatReader().decode(binaryBitmap, hints);//解码System.out.println("图片中内容: ");System.out.println("content: " + result.getText());content = result.getText();} catch (IOException e) {e.printStackTrace();} catch (NotFoundException e) {e.printStackTrace();}return content;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。