亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解使用zxing庫(kù)生成QR-Code二維碼

 更新時(shí)間:2017年05月03日 14:43:49   作者:阿信sxq  
這篇文章主要介紹了詳解使用zxing庫(kù)生成QR-Code二維碼的相關(guān)資料,需要的朋友可以參考下

詳解使用zxing庫(kù)生成QR-Code二維碼

最近因?yàn)橐恍┕ぷ餍枰?,需要根?jù)實(shí)際的信息生成QR-Code二維碼圖片文件,自然想到zxing庫(kù)了,具體的代碼很簡(jiǎn)單,做個(gè)備忘。

首先是引入zxing庫(kù),我是使用maven構(gòu)建項(xiàng)目的,添加依賴:

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

然后是測(cè)試樣列代碼:

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;

/**
 * 使用zxing庫(kù)生成QRCode二維碼樣例程序
 *
 * @author 阿信sxq
 *
 */
public class QrcodeDemo {

  public static void main(String[] args) {
    new QrcodeDemo().genQrcode("https://my.oschina.net/songxinqiang");
  }

  public void genQrcode(String message) {
    //輸出目標(biāo)文件
    File file = new File("E:\\qrcode.png");
    if (!file.exists()) {
      try {
        file.mkdirs();
        file.createNewFile();
      } catch (IOException e) {}
    }
    //設(shè)置參數(shù),輸出文件
    Map<EncodeHintType, String> hints = new HashMap<>();
    hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    try {
      BitMatrix bitMatrix = new MultiFormatWriter().encode(message, BarcodeFormat.QR_CODE,
          300, 300, hints);// 生成矩陣
      MatrixToImageWriter.writeToPath(bitMatrix, "png", file.toPath());// 輸出圖像
    } catch (Exception e) {}
  }

}


這里是為了做演示,內(nèi)容直接生成的我空間的地址,并且目標(biāo)文件也是現(xiàn)在家里使用的windows 的文件位置,在具體實(shí)際的使用中需要具體修改。

生成的圖片是:

(調(diào)整過(guò)大小)

在這里需要說(shuō)明的是,二維碼中的點(diǎn)的大小會(huì)隨二維碼文字內(nèi)容的多少自動(dòng)變化,所以在文字內(nèi)容很多的時(shí)候需要把圖片的尺寸調(diào)大,否則點(diǎn)太小了,一般的手機(jī)掃描起來(lái)很吃力

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Kotlin 基礎(chǔ)教程之類、對(duì)象、接口

    Kotlin 基礎(chǔ)教程之類、對(duì)象、接口

    這篇文章主要介紹了Kotlin 基礎(chǔ)教程之類、對(duì)象、接口的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 新手初學(xué)Java網(wǎng)絡(luò)編程

    新手初學(xué)Java網(wǎng)絡(luò)編程

    網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過(guò)網(wǎng)絡(luò)連接起來(lái)。本文介紹了一些網(wǎng)絡(luò)編程基礎(chǔ)的概念,并用Java來(lái)實(shí)現(xiàn)TCP和UDP的Socket的編程,來(lái)讓讀者更好的了解其原理
    2021-07-07
  • MybatisPlus?構(gòu)造器wrapper的使用與原理解析

    MybatisPlus?構(gòu)造器wrapper的使用與原理解析

    本次我們介紹了MybatisPlus?構(gòu)造器wrapper的使用方式及其易錯(cuò)點(diǎn),同時(shí)也針對(duì)其運(yùn)行的原理進(jìn)行了解釋,只有深刻理解了它的原理,我們才能更靈活的使用,并且更快的排查出問(wèn)題,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Java Object toString方法原理解析

    Java Object toString方法原理解析

    這篇文章主要介紹了Java Object toString方法原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Spring之spring-context-indexer依賴詳解

    Spring之spring-context-indexer依賴詳解

    這篇文章主要介紹了Spring之spring-context-indexer依賴詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot詳細(xì)列舉常用注解的說(shuō)明

    SpringBoot詳細(xì)列舉常用注解的說(shuō)明

    在開(kāi)發(fā)SpringBoot程序的過(guò)程中,有可能與其他業(yè)務(wù)系統(tǒng)進(jìn)行對(duì)接開(kāi)發(fā),獲取封裝公共的API接口等等,下面這篇文章主要給大家介紹了關(guān)于SpringBoot常見(jiàn)的注解的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Mybatis使用@one和@Many實(shí)現(xiàn)一對(duì)一及一對(duì)多關(guān)聯(lián)查詢

    Mybatis使用@one和@Many實(shí)現(xiàn)一對(duì)一及一對(duì)多關(guān)聯(lián)查詢

    本文主要介紹了Mybatis使用@one和@Many實(shí)現(xiàn)一對(duì)一及一對(duì)多關(guān)聯(lián)查詢,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java實(shí)現(xiàn)猜數(shù)字小游戲

    Java實(shí)現(xiàn)猜數(shù)字小游戲

    大家好,本篇文章主要講的是Java實(shí)現(xiàn)猜數(shù)字小游戲,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • maven導(dǎo)入無(wú)法拉取所需依賴的解決方法

    maven導(dǎo)入無(wú)法拉取所需依賴的解決方法

    最近遇到個(gè)問(wèn)題maven導(dǎo)入無(wú)法拉取所需依賴的解決方法,本文就來(lái)詳細(xì)的介紹一下解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • 圖解Java?ReentrantLock的條件變量Condition機(jī)制

    圖解Java?ReentrantLock的條件變量Condition機(jī)制

    想必大家都使用過(guò)wait()和notify()這兩個(gè)方法把,他們主要用于多線程間的協(xié)同處理。而RenentrantLock也支持這樣條件變量的能力,而且相對(duì)于synchronized?更加強(qiáng)大,能夠支持多個(gè)條件變量,本文就來(lái)詳細(xì)說(shuō)說(shuō)
    2022-10-10

最新評(píng)論