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/