当前位置: 首页 > wzjs >正文

网站结构 扁平结构 树状结构北京发生大事了

网站结构 扁平结构 树状结构,北京发生大事了,网站用户体验要素,公司做一个网站Java 生成带文字、带边框的二维码1、Java 生成带文字的二维码1.1、导入jar包1.2、普通单一的二维码1.2.1、代码示例1.2.2、效果1.3、带文字的二维码1.3.1、代码示例1.3.2、效果2、带边框的二维码2.1、代码示例2.2、带边框的二维码效果 1、Java 生成带文字…

Java 生成带文字、带边框的二维码

  • 1、Java 生成带文字的二维码
    • 1.1、导入jar包
    • 1.2、普通单一的二维码
      • 1.2.1、代码示例
      • 1.2.2、效果
    • 1.3、带文字的二维码
      • 1.3.1、代码示例
      • 1.3.2、效果
  • 2、带边框的二维码
    • 2.1、代码示例
    • 2.2、带边框的二维码效果

1、Java 生成带文字的二维码

在做一些标签时,我们时常会用到二维码,现在我们利用Java来生成二维码。

1.1、导入jar包

在pom.xml中,导入zxing包

	<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.4.1</version></dependency>

1.2、普通单一的二维码

1.2.1、代码示例

rHeight = 100; // 二维码核心区域高度(不含边距)int margin = 50;    // 边距大小(像素)// 生成二维码(无边距)BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, qrWidth, qrHeight);BufferedImage qrImage = MatrixToImageWriter.toBufferedImage(bitMatrix);// 创建带边距的画布int totalWidth = qrWidth ;int totalHeight = qrHeight ;BufferedImage finalImage = new BufferedImage(totalWidth, totalHeight, BufferedImage.TYPE_INT_RGB);Graphics2D graphics = finalImage.createGraphics();graphics.setColor(Color.WHITE);graphics.fillRect(0, 0, totalWidth, totalHeight); // 填充背景// 将二维码绘制到画布中央(可调整位置)graphics.drawImage(qrImage, 0, 0, null);graphics.dispose();// 保存图像ImageIO.write(finalImage, "PNG", new File("测试.png"));}

1.2.2、效果

在这里插入图片描述

1.3、带文字的二维码

1.3.1、代码示例

/*** 二维码属性设置 * @param text 内容* @param width 宽度* @param height 高度* @return* @throws WriterException*/private static BitMatrix generateQRCode(String text, int width, int height) throws WriterException {Map<EncodeHintType, Object> hints = new HashMap<>();hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //字符集
//        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 高容错率hints.put(EncodeHintType.MARGIN, 0);// 禁用ZXing默认边距return new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);}
//二维码图上带字public static void contextLoads(String name,String path) {String textToEncode = name;int qrCodeWidth = 100;int qrCodeHeight = 100;int textPadding = 10; // 文本与二维码之间的间距int textSize = 10; // 文本字体大小int totalHeight = qrCodeHeight  + textPadding;try {// 生成二维码的BitMatrixBitMatrix bitMatrix = generateQRCode(textToEncode, qrCodeWidth, qrCodeHeight);// 将BitMatrix转换为BufferedImageBufferedImage qrCodeImage = MatrixToImageWriter.toBufferedImage(bitMatrix);// 创建一个新的BufferedImage来容纳二维码和文本BufferedImage combinedImage = new BufferedImage(qrCodeWidth, totalHeight, BufferedImage.TYPE_INT_RGB);// 绘制二维码到新的BufferedImage上Graphics2D g2d = combinedImage.createGraphics();g2d.setColor(Color.WHITE);g2d.fillRect(0, 0, qrCodeWidth, totalHeight);g2d.drawImage(qrCodeImage, 0, 0, null);// 设置文本样式Font font = new Font("Arial", Font.PLAIN, textSize);g2d.setFont(font);g2d.setColor(Color.BLACK); // 文本颜色// 绘制文本到图片下方FontMetrics metrics = g2d.getFontMetrics();int textX = (qrCodeWidth - metrics.stringWidth(textToEncode)) / 2;int textY = qrCodeHeight + textPadding;g2d.drawString(textToEncode, textX, textY);g2d.dispose();// 指定存储图片的路径Path filePath = Paths.get(path+name+".png");// 确保文件路径的父目录存在filePath.getParent().toFile().mkdirs();// 保存图片到文件ImageIO.write(combinedImage, "PNG", filePath.toFile());System.out.println("QR Code with text has been generated: " + filePath.toAbsolutePath());} catch (WriterException | IOException e) {e.printStackTrace();}}
 public static void main(String[] args) {// 指定存储二维码图片的路径String filePath = "D:/data/";contextLoads("C40851-WZ-A01",filePath);}

1.3.2、效果

在这里插入图片描述

2、带边框的二维码

因为我将生成的二维码图片导出到excel表格的时候,二维码图片覆盖了excel表格的边框,显得很突兀,所以我考虑将二维码图片加个边框,在导出的时候,二维码边框可以替代excel边框。

2.1、代码示例

我们在带文字的二维码生成类里面新增一些内容,并更详细的增加了一些注释。

    /*** 二维码属性设置 * @param text 内容* @param width 宽度* @param height 高度* @return* @throws WriterException*/private static BitMatrix generateQRCode(String text, int width, int height) throws WriterException {Map<EncodeHintType, Object> hints = new HashMap<>();hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //字符集//默认边距是为了二维码能更好的识别,如果禁用默认边距,为了能更好识别,最好要设置高容错率
//        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 高容错率hints.put(EncodeHintType.MARGIN, 0);// 禁用ZXing默认边距 不禁用会有较多空白区域return new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);}
/*** 二维码图上带字* @param name 二维码 生成的内容 和 二维码上的文字 及 二维码的名称* @param path 二维码保存的路径*/public static void contextLoads2(String name,String path) {int qrCodeWidth = 100;  //二维码宽度int qrCodeHeight = 100;//二维码高度int textPadding = 10; // 文本与二维码之间的间距int textSize = 10; // 文本字体大小int borderWidth=1;//边框大小int totalHeight = qrCodeHeight  + textPadding;//总高度 加上文本二维码之间的间距try {// 生成二维码的BitMatrixBitMatrix bitMatrix = generateQRCode(name, qrCodeWidth, qrCodeHeight);// 将BitMatrix转换为BufferedImageBufferedImage qrCodeImage = MatrixToImageWriter.toBufferedImage(bitMatrix);// 3. 创建带边框的图像int borderedSize = totalHeight + 2 * borderWidth;//因为borderedSize 包含了textPadding// 所以把宽度设置为borderedSize时,两边空白太多了,所以减掉了BufferedImage image = new BufferedImage(borderedSize-textPadding,borderedSize,BufferedImage.TYPE_INT_RGB);Graphics2D graphics = image.createGraphics();// 4. 绘制黑色边框graphics.setColor(Color.BLACK);// 起始 x y 宽度 高度graphics.fillRect(0, 0, borderedSize, borderedSize);// 绘制二维码到新的BufferedImage上Graphics2D g2d = image.createGraphics();g2d.setColor(Color.WHITE);// 起始 x y 宽度 高度g2d.fillRect(borderWidth, borderWidth, qrCodeWidth, totalHeight);g2d.drawImage(qrCodeImage, borderWidth, borderWidth, null);// 设置文本样式Font font = new Font("Arial", Font.PLAIN, textSize);g2d.setFont(font);g2d.setColor(Color.BLACK); // 文本颜色// 绘制文本到图片下方FontMetrics metrics = g2d.getFontMetrics();// x 居中位置int textX = (qrCodeWidth - metrics.stringWidth(name)) / 2 +borderWidth;int textY = qrCodeHeight + textPadding;g2d.drawString(name, textX, textY);g2d.dispose();// 指定存储图片的路径Path filePath = Paths.get(path+name+".png");// 确保文件路径的父目录存在filePath.getParent().toFile().mkdirs();// 保存图片到文件ImageIO.write(image, "PNG", filePath.toFile());System.out.println("QR Code with text has been generated: " + filePath.toAbsolutePath());} catch (WriterException | IOException e) {e.printStackTrace();}}

2.2、带边框的二维码效果

在这里插入图片描述


以上就是本文的全部内容,部分代码是利用AI生成,然后再去修改成我想要的效果,如果有侵权的地方,还请联系本人。
如果代码有异常,或者有其他疑惑、或有新思路的同学,可以评论区留言。

http://www.dtcms.com/wzjs/302546.html

相关文章:

  • 计算机网站开发悟空建站seo服务
  • 开个网站建设公司多少钱百度一下京东
  • 国际新闻界期刊北京网站优化推广公司
  • 个人网站设计百度百家号官网登录
  • 学校网站建设的申请书云南网站推广公司
  • 网站需要公司备案么郑州网络推广厂家
  • 企业网站怎么做跟淘宝链接东莞网站排名提升
  • 开发网站公司百度seo新规则
  • 成都学生网站制作爱站网seo综合查询工具
  • 二级域名网站怎么投广告怎么设置自己的网站
  • wordpress房产插件搜索引擎优化的简称
  • 太原互联网公司有哪些志鸿优化设计答案
  • 网站建设哪家服务好广州营销课程培训班
  • 网站开发的安全策略自己怎么优化网站排名
  • 品牌网站设计制作公司今日足球比赛预测推荐分析
  • 网站开发商如何查询网站收录情况
  • 网页建站点百度竞价教程
  • 个人站长还有什么类型的网站可以做竞价代运营
  • 竹子建站加盟咨询网站托管服务商
  • b站推广入口mba智库百度指数功能有哪些
  • 建设信用卡登录中心网站软文发稿
  • 郑州做系统集成的公司网站公司网站seo外包
  • 网站域名 没有续费torrentkitty磁力搜索引擎
  • 深圳网站建设公司pestl分析seo全站优化全案例
  • 南宁网站建设q479185700惠怎么把平台推广出去
  • 网站建设步骤及分工磁力搜索器
  • 织梦dede新闻网站源码手机站怎样在百度上发布免费广告
  • 深圳网站制作建设推广营销软件app
  • 受欢迎的网站开发百度搜索关键词规则
  • 如何做更改网站的图片百度自动驾驶技术