最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)的生成二維碼和解析二維碼URL操作示例

 更新時(shí)間:2018年07月16日 08:37:15   作者:Rest探路者  
這篇文章主要介紹了Java實(shí)現(xiàn)的生成二維碼和解析二維碼URL操作,結(jié)合實(shí)例形式分析了Java創(chuàng)建與解析二維碼,以及文件讀寫等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java實(shí)現(xiàn)的生成二維碼和解析二維碼URL操作。分享給大家供大家參考,具體如下:

二維碼依賴jar包,zxing

<!-- 二維碼依賴 start -->
<dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>javase</artifactId>
  <version>3.0.0</version>
</dependency>

createQRCode生成二維碼,anlysisQRCode解析二維碼

package com.xgt.util;
import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sun.misc.BASE64Encoder;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.nio.file.Path;
import java.util.Hashtable;
public class QRCodeUtil {
  private static final Logger logger = LoggerFactory.getLogger(QRCodeUtil.class);
  /**
   * 創(chuàng)建二維碼
   * @param url
   * @param fileName
   * @return
   * @throws IOException
   */
  public static String createQRCode(String url,String fileDirectory,String fileName) throws IOException {
    int width = 500;
    int height = 500;
    String format = "png";
    Hashtable hints = new Hashtable();
    hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
    hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
    hints.put(EncodeHintType.MARGIN, 2);
    try {
      BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, width, height, hints);
      File fileDir = new File(fileDirectory);
      FileToolUtil.judeDirExists(fileDir);
      Path file = new File(fileDirectory,fileName+".png").toPath();//在D盤生成二維碼圖片
      MatrixToImageWriter.writeToPath(bitMatrix, format, file);
      BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
      ByteArrayOutputStream os = new ByteArrayOutputStream();//新建流。
      ImageIO.write(image, format, os);//利用ImageIO類提供的write方法,將bi以png圖片的數(shù)據(jù)模式寫入流。
      byte b[] = os.toByteArray();//從流中獲取數(shù)據(jù)數(shù)組。
      String str = new BASE64Encoder().encode(b);
      IOUtils.closeQuietly(os);
      return str;
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }finally {
      //DeleteFileUtil.delete(fileDirectory);
    }
    return "NULL";
  }
  /**
   * 解析出二維碼的url
   * 無(wú)用
   * @param file
   * @param fileDirectory
   * @throws NotFoundException
   */
  public static void anlaysisQRCode(File file,String fileDirectory) throws NotFoundException {
    MultiFormatReader formatReader=new MultiFormatReader();
    BufferedImage image=null;
    try {
      image = ImageIO.read(file);
    BinaryBitmap binaryBitmap =new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
    Hashtable hints=new Hashtable();
    hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
    Result result=formatReader.decode(binaryBitmap,hints);
    logger.info("解析結(jié)果:"+result.toString());
    logger.info("解析格式:"+result.getBarcodeFormat());
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }finally {
      DeleteFileUtil.delete(fileDirectory);
    }
  }
}

PS:這里再為大家推薦兩款二維碼相關(guān)在線工具供大家參考使用:

在線生成二維碼工具(加強(qiáng)版)
http://tools.jb51.net/transcoding/jb51qrcode

在線二維碼解碼識(shí)別工具
http://tools.jb51.net/transcoding/trans_qrcode

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java編碼操作技巧總結(jié)》、《Java數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java 入門圖形用戶界面設(shè)計(jì)之事件處理上

    Java 入門圖形用戶界面設(shè)計(jì)之事件處理上

    圖形界面(簡(jiǎn)稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)在視覺(jué)上更易于接受,本篇精講Java語(yǔ)言中關(guān)于圖形用戶界面的事件處理
    2022-02-02
  • JDK下載與安裝超詳細(xì)步驟大全

    JDK下載與安裝超詳細(xì)步驟大全

    學(xué)習(xí)JAVA必須得安裝一下JDK(java development kit java開(kāi)發(fā)工具包),配置一下環(huán)境就可以學(xué)習(xí)JAVA了,下面這篇文章主要給大家介紹了關(guān)于JDK下載與安裝步驟的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • springboot使用webservice發(fā)布和調(diào)用接口的實(shí)例詳解

    springboot使用webservice發(fā)布和調(diào)用接口的實(shí)例詳解

    本文介紹了如何在Springboot中使用webservice發(fā)布和調(diào)用接口,涵蓋了必要的依賴添加和代碼示例,文中提供了服務(wù)端和客戶端的實(shí)現(xiàn)方法,以及如何設(shè)置端口和服務(wù)地址,幫助讀者更好地理解和應(yīng)用Springboot結(jié)合webservice的技術(shù)
    2024-10-10
  • 教你怎么通過(guò)IDEA設(shè)置堆內(nèi)存空間

    教你怎么通過(guò)IDEA設(shè)置堆內(nèi)存空間

    這篇文章主要介紹了教你怎么通過(guò)IDEA設(shè)置堆內(nèi)存空間,文中有非常詳細(xì)的代碼示例,對(duì)正在使用IDEA的小伙伴們很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • 教你在?Java?中實(shí)現(xiàn)?Dijkstra?最短路算法的方法

    教你在?Java?中實(shí)現(xiàn)?Dijkstra?最短路算法的方法

    這篇文章主要教你在?Java?中實(shí)現(xiàn)?Dijkstra?最短路算法的方法,在實(shí)現(xiàn)最短路算法之前需要先實(shí)現(xiàn)帶權(quán)有向圖,文章中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Mybatis之解決collection一對(duì)多問(wèn)題(顯示的結(jié)果沒(méi)有整合到一起)

    Mybatis之解決collection一對(duì)多問(wèn)題(顯示的結(jié)果沒(méi)有整合到一起)

    這篇文章主要介紹了Mybatis之解決collection一對(duì)多問(wèn)題(顯示的結(jié)果沒(méi)有整合到一起),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring?AOP?后置處理器使用方式

    Spring?AOP?后置處理器使用方式

    這篇文章主要介紹了Spring?AOP?后置處理器使用方式,文章圍繞主題相關(guān)內(nèi)容展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 如何解決Eclipse找不到或無(wú)法加載主類問(wèn)題

    如何解決Eclipse找不到或無(wú)法加載主類問(wèn)題

    這篇文章主要介紹了如何解決Eclipse找不到或無(wú)法加載主類問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 關(guān)于Spring @Bean 相同加載順序不同結(jié)果不同的問(wèn)題記錄

    關(guān)于Spring @Bean 相同加載順序不同結(jié)果不同的問(wèn)題記錄

    本文主要探討了在Spring 5.1.3.RELEASE版本下,當(dāng)有兩個(gè)全注解類定義相同類型的Bean時(shí),由于加載順序不同,最終生成的Bean實(shí)例也會(huì)不同,文章通過(guò)分析ConfigurationClassPostProcessor的執(zhí)行過(guò)程,解釋了BeanDefinition的加載和覆蓋機(jī)制,感興趣的朋友一起看看吧
    2025-02-02
  • java網(wǎng)上圖書商城(1)User模塊

    java網(wǎng)上圖書商城(1)User模塊

    這篇文章主要介紹了java網(wǎng)上圖書商城,User模塊,實(shí)現(xiàn)用戶注冊(cè)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評(píng)論

万荣县| 调兵山市| 江永县| 开封市| 衡水市| 墨竹工卡县| 神木县| 彝良县| 定日县| 安庆市| 昌图县| 阳新县| 涿鹿县| 怀来县| 电白县| 拉孜县| 文化| 溆浦县| 治多县| 孝义市| 玛多县| 商都县| 克山县| 运城市| 松滋市| 梁平县| 昭通市| 铜川市| 桐梓县| 信宜市| 林州市| 新巴尔虎左旗| 稷山县| 和硕县| 兴仁县| 清水县| 教育| 米脂县| 乐安县| 阳曲县| 南充市|