1. 程式人生 > >java生成二維碼到頁面、到本地

java生成二維碼到頁面、到本地

今天接到一個任務:生成一個二維碼介面傳遞給php端,通過掃描二維碼連線到網站。

雖然很早接觸到二維碼,但是一直沒有研究過,本文只是記錄這次生成二維碼的過程,留待本人檢視,望大家交流學習!

看了幾個帖子,大部分都是用的google的二維碼jar

1.首先要下載ZXing的jar包,maven專案,也可以直接用maven repository 下載已經編譯好的jar包

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

2.第二步,我們需要一個工具類MatrixToImageWriter來處理我們的需求

直接上程式碼了

package com.echin.tool;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;

public class MatrixToImageWriter {

 private static final int BLACK = 0xFF000000;
  private static final int WHITE = 0xFFFFFFFF;
 
  private MatrixToImageWriter() {}
 
  public static BufferedImage toBufferedImage(BitMatrix matrix) {
    int width = matrix.getWidth();
    int height = matrix.getHeight();
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    for (int x = 0; x < width; x++) {
      for (int y = 0; y < height; y++) {
        image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
      }
    }
    return image;
  }
 
  public static void writeToFile(BitMatrix matrix, String format, File file)
      throws IOException {
    BufferedImage image = toBufferedImage(matrix);
    if (!ImageIO.write(image, format, file)) {
      throw new IOException("Could not write an image of format " + format + " to " + file);
    }
  }
 
  public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)
      throws IOException {
    BufferedImage image = toBufferedImage(matrix);
    if (!ImageIO.write(image, format, stream)) {
      throw new IOException("Could not write an image of format " + format);
    }
  }
  public static void main(String[] args) {
  try {
            
    String content = "嶽茂葉Happy Birthday!";
    String path = "E:\\upload";
    
    MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
    
    Map hints = new HashMap();
    hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 400, 400,hints);
    File file1 = new File(path,"二維碼.jpg");
    MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
    
} catch (Exception e) {
    e.printStackTrace();
}
}
}

3.根據不同的需求,呼叫不同的方法

(1)writeToFile:生成本地的檔案二維碼

 (2)writeToStream:以檔案流的格式傳遞到頁面啊,客戶端等

4.下面一個是我自己傳遞到頁面的controller

@RequestMapping("/qrcode")
@ResponseBody
public void list(String content,HttpServletResponse response){

response.setContentType("image/jpeg");//設定相應型別,告訴瀏覽器輸出的內容為圖片
response.setHeader("Pragma", "No-cache");//設定響應頭資訊,告訴瀏覽器不要快取此內容
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expire", 0);
try {
//    String content = "Happy Birthday!";
    MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
    Map hints = new HashMap();
    hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 200, 200,hints);
    MatrixToImageWriter.writeToStream(bitMatrix, "JPEG", response.getOutputStream());
} catch (Exception e) {
    e.printStackTrace();
}

}

5.大功告成,這時候可以訪問自己的ip,看下自己的二維碼了,掃描下驗證是不是自己要的內容

相關推薦

java生成頁面本地

今天接到一個任務:生成一個二維碼介面傳遞給php端,通過掃描二維碼連線到網站。 雖然很早接觸到二維碼,但是一直沒有研究過,本文只是記錄這次生成二維碼的過程,留待本人檢視,望大家交流學習! 看了幾個帖子,大部分都是用的google的二維碼jar 1.首先要下載ZXing的ja

java 生成

qrc exti his stream red rgs develop 是個 public 一步一步用 java 設計生成二維碼 轉至 http://blog.sina.com.cn/s/blog_5a6efa330102v1lb.html 在物聯網的時代,二維碼是個很

java生成的幾種方式

qrcode ext -s har bold 轉換成 沒有 += correct 1: 使用SwetakeQRCode在Java項目中生成二維碼 http://swetake.com/qr/ 下載地址 或著http://sourceforge.jp/projects

基於java生成

alt 專家 美國 con 信息 ces 線性 exc rac

Java生成

二維 one cti eve rgb ont pub har ger 前言: 這周有個項目需要生成二維碼,研究了一下使用Google的zxing生成二維碼,發現效果還可以,在這裏記錄下。如果需要更加定制化的二維碼,也可接通第三方API服務生成二維碼。 二維碼的生成 :

java生成,在中間附上logo,下方附上文字,img標籤嵌入

package com.audaque.web.action; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import

java生成/java解析

text level hang err 定義 image binary port style 二維碼的優缺點     優點:1. 高密度編碼,信息容量大;2.編碼範圍廣;3.容錯能力強;4.譯碼可靠性高;5.可引入加密措施;6.成本低,易制作,持久耐用。     缺點:

Java生成之 ZXing

  前幾天突然有個新的想法,給某個程式設計師送禮物的想法,程式設計師的浪漫(誤)。所以特地去學了一下二維碼生成相關知識,還買了個域名。生成二維碼的方式有好幾種,這次用的是zxing來生成的。   很簡單,接下來就放一下程式碼。有關二維碼相關原理看了一下這位大佬的文章:https://coolshell.cn

java生成java工具類可以直接呼叫)

生成二維碼的方法大體分為兩種:1. 展示時候引用Qrcode.js;2.後臺生成二維碼儲存成圖片,前端顯示 1.QRCode.js 是一個用於生成二維碼的 JavaScript 庫。主要是通過獲取 DOM 的標籤,再通過 HTML5 Canvas 繪製而成 <!DO

微信小程式-生成-如何在本地js中除錯呼叫

官方連結   let appId = 'wxbf338********361'; let secret = 'ce5e6c73*********************8a'; let getUrl = 'https://api

安卓將URL連結生成儲存到本地相簿

/* *context不解釋;url:要轉二維碼的連結;width,height也不解釋;originalid:二維碼圖片的名字 */ public static String createQRImage(Context context, String url, final

java 生成圖片

import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.Writ

Java生成小程式

(原始碼地址:連結: https://pan.baidu.com/s/16SGJ5h9KLjsbwuRgqVl_TA 提取碼: 96mr  ,如果失效請在下方留言,我重新分享。) 用Java寫的生成二維碼得桌面小程式:  生成的二維碼如下:  

JAVA生成,圖片合成,圖片新增文字

首先引入zxing用於生成二維碼 <!-- https://mvnrepository.com/artifact/com.google.zxing/core --> <dependency> <groupId>c

java生成以及讀取案例

      今天有時間把二維碼這塊看了一下,方法有幾種,我只是簡單的看了一下  google  的  zxing!       很簡單的一個,比較適合剛剛學習java的小夥伴哦!也比較適合以前沒有接觸過和感興趣的的小夥伴,o(* ̄︶ ̄*)o      生成二維碼  ,將二維碼返回頁面展示 ,讀取二維碼 !

微信小程式java生成-帶引數

/** * 生成小程式二維碼 -並儲存到本地-返回二維碼地址 *  * @param request * @param access_token * @param path * @param width * @param scene * @return */public st

使用Java生成

二維碼應該稱為二維條碼,掃描之後可以獲得更多資料 QR碼全稱為快速響應矩陣碼,1994年日本一個公司發明 黑色表示1,白色表示0 3個角落比較像“回”字,叫定位點 容錯機制,當7%~30%破損任可以被讀取,可以利用這個機制在二維碼中放入一些小的logo 最多可以儲存708

Android開源庫之使用ZXing開源庫生成及識別本地圖片

/** * 解析二維碼(使用解析RGB編碼資料的方式) * * @param path * @return */ public static Result decodeBarcodeRGB(String path) { if (Text

java生成並解析(QRCode方式)

準備工作  下載jar http://www.swetake.com/qrcode/java/qr_java.html https://zh.osdn.net/projects/qrcode/downloads/28391/qrcode.zip/ jar下載完畢後新建專案

java生成工具類,親測有效,轉載請標明出處,謝謝!

自動創建 oat for pub 輸出 工具類 port 需要 ase 工具類使用需要在項目中引入二維碼處理所需要的jar包 1.pom.xml首先加入 <!-- https://mvnrepository.com/artifact/com.google.zxing/