标签:resMatrix java url image int 二维码 new rec qrCodePath
/** * 生成不带白边的二维码 * * @param content 二维码内容(目标url) * @param qrCodePath 生成的二维码地址(最终保存地址) * @throws Exception 异常 */ public static void generatorQrCode(String content, String qrCodePath) throws Exception { Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.MARGIN, 0); BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, 256, 256, hints); // 去白边 int[] rec = bitMatrix.getEnclosingRectangle(); int resWidth = rec[2] + 1; int resHeight = rec[3] + 1; BitMatrix resMatrix = new BitMatrix(resWidth, resHeight); resMatrix.clear(); for (int i = 0; i < resWidth; i++) { for (int j = 0; j < resHeight; j++) { if (bitMatrix.get(i + rec[0], j + rec[1])) { resMatrix.set(i, j); } } } int width = resMatrix.getWidth(); int height = resMatrix.getHeight(); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { if (resMatrix.get(x, y)) { // image.setRGB(x, y, Color.BLACK.getRGB()); image.setRGB(x, y, -16777216); } else { // image.setRGB(x, y, Color.WHITE.getRGB()); image.setRGB(x, y, -1); } } } ImageIO.write(image, "png", new File(qrCodePath)); }
@Test public void test() { String qrCodePath = "https://www.baidu.com"; String qrCodeLocalPath = "C:\\Users\\Administrator\\Pictures\\测试\\百度首页22.png"; try { generatorQrCode(qrCodePath, qrCodeLocalPath); } catch (Exception e) { log.info("error :{}", JSON.toJSON(e)); } }
标签:resMatrix,java,url,image,int,二维码,new,rec,qrCodePath 来源: https://www.cnblogs.com/lihui123/p/14917915.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。