/** * 生成带logo的二维码 * * @param content 条码文本内容 * @param width 条码宽度 * @param height 条码高度 * @param logoPath 条码中logo的路径 * @param fileType 文件类型,如png * @param savePath 保存路径 */ public static void encodeLogo( String content, int width, int height, String logoPath, String fileType, String savePath) { try { BitMatrix matrix = MatrixToImageWriterEx.createQRCode(content, width, height); MatrixToLogoImageConfig logoConfig = new MatrixToLogoImageConfig(Color.BLUE, 4); MatrixToImageWriterEx.writeToFile(matrix, fileType, savePath, logoPath, logoConfig); } catch (Exception e) { e.printStackTrace(); } }
/** * 写入二维码、以及将照片logo写入二维码中 * * @param matrix 要写入的二维码 * @param format 二维码照片格式 * @param imagePath 二维码照片保存路径 * @param logoPath logo路径 * @throws IOException */ @SuppressWarnings({"deprecation"}) public static void writeToFile(BitMatrix matrix, String format, String imagePath, String logoPath) throws IOException { MatrixToImageWriter.writeToFile(matrix, format, new File(imagePath), new MatrixToImageConfig()); // 添加logo图片, 此处一定需要重新进行读取,而不能直接使用二维码的BufferedImage 对象 BufferedImage img = ImageIO.read(new File(imagePath)); MatrixToImageWriterEx.overlapImage(img, format, imagePath, logoPath, DEFAULT_CONFIG); }