Java生成二维码和解析二维码。
public class QrcodeUtil { private static Logger logger = LogManager.getLogger(); public static String createQrcode(String dir, String content) { return createQrcode(dir, content, 300, 300); } public static String createQrcode(String dir, String content, int width, int height) { try { String qrcodeFormat = "png"; HashMap<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints); File file = new File(dir, UUID.randomUUID().toString() + "." + qrcodeFormat); MatrixToImageWriter.writeToPath(bitMatrix, qrcodeFormat, file.toPath()); return file.getAbsolutePath(); } catch (Exception e) { logger.error("", e); } return ""; } public static String decodeQr(String filePath) { String retStr = ""; if ("".equalsIgnoreCase(filePath) && filePath.length() == 0) { return "图片路径为空!"; } try { BufferedImage bufferedImage = ImageIO.read(new FileInputStream(filePath)); LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage); Binarizer binarizer = new HybridBinarizer(source); BinaryBitmap bitmap = new BinaryBitmap(binarizer); HashMap<DecodeHintType, Object> hintTypeObjectHashMap = new HashMap<>(); hintTypeObjectHashMap.put(DecodeHintType.CHARACTER_SET, "UTF-8"); Result result = new MultiFormatReader().decode(bitmap, hintTypeObjectHashMap); retStr = result.getText(); } catch (Exception e) { logger.error("", e); } return retStr; }