摘要:二維碼是根據(jù)一定規(guī)則生成,存儲信息的小圖片。比如可以存儲參數(shù)存儲等內(nèi)容。
二維碼是根據(jù)一定規(guī)則生成,存儲信息的小圖片。比如可以存儲參數(shù)存儲url等內(nèi)容。掃描之后將能獲得這些內(nèi)容
下文為普通二維碼的生成,可自定義二維碼的大小,定義二維碼中存儲的數(shù)據(jù)內(nèi)容
1.下文使用的二維碼生成jar坐標
com.google.zxing core 3.3.2
2.工具類的定義
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class CodeImageUtil {
// 默認二維碼寬度 public static final int WIDTH = 300; // 默認二維碼高度 public static final int HEIGHT = 300; // 默認二維碼文件格式 public static final String FORMAT = "png"; // 二維碼參數(shù) public static final MapHINTS = new HashMap (); //初始化編碼格式等參數(shù) static { // 字符編碼 HINTS.put(EncodeHintType.CHARACTER_SET, "utf-8"); HINTS.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 二維碼與圖片邊距 HINTS.put(EncodeHintType.MARGIN, 2); } /** * * @description:功能描述 將二維碼寫出到輸出流中 * @param content 二維碼內(nèi)容即要存儲在二維碼中的內(nèi)容(掃描二維碼之后獲取的內(nèi)容) * @param stream 輸出流 * @param width 二維碼寬 * @param height 二維碼高 * @throws WriterException * @throws IOException * @see: 需要參見的其它內(nèi)容 */ public static void writeToStream(String content, OutputStream stream, Integer width, Integer height) throws WriterException, IOException { if(width==null){ width=WIDTH; } if(height==null){ height=HEIGHT; } BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, HINTS); MatrixToImageWriter.writeToStream(bitMatrix, FORMAT, stream); }
}
3.main中的調(diào)用
public void main(String[] arg){
ByteArrayOutputStream out = new ByteArrayOutputStream(); // 生成二維碼圖片 CodeImageUtil.writeToStream(url, out, 300, 300); InputStream in = new ByteArrayInputStream(out.toByteArray()); //將生成的二維碼寫入圖片,也可直接使用流 String filePath="H:file_station" + fileName; FileOutputStream fos = new FileOutputStream(filePath); int length; byte[] b = new byte[1024]; while ((length=in.read(b))>0){ fos.write(b,0,length); } fos.flush(); in.close(); fos.close();
}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75752.html
什么是Leancloud Leancloud是國內(nèi)有名的BaaS提供商,什么是BaaS提供商呢?通俗點講就是給你提供增刪改查等后臺服務的API,你通過這些API就可以將數(shù)據(jù)存儲在云端數(shù)據(jù)庫中,而不需要關(guān)系服務器環(huán)境和里面的處理邏輯,它提供的SDK有js、java、object-c、python等等。 類似的BaaS提供商還有谷歌的firebase(www.firebase.com),但容易被墻不...
摘要:業(yè)務具體介紹,本系統(tǒng)是一個共享圖書的小程序項目,企業(yè)級,創(chuàng)業(yè)項目。具體業(yè)務流程類似共享自行車,也有設(shè)計押金月卡季卡等等。以上是單個頁面的實現(xiàn)基本文件目錄。其中還涉及微信支付環(huán)節(jié)。 本博客 貓叔的博客,轉(zhuǎn)載請申明出閱讀本文約3分鐘適讀人群:Java后端、Java初級、小程序前端 本文是兩個GitHub項目的序章,旨在指導初級程序員完成一個企業(yè)級共享項目的前后端代碼實踐,豐富自身的實戰(zhàn)經(jīng)...
摘要:微信小程序官方開放了個創(chuàng)建二維碼的接口,其中有一個是生成二維碼的,還有一個是葵花狀的小程序碼,我這里就用生成二維碼。 微信小程序官方開放了3個創(chuàng)建二維碼的接口,其中有一個是生成二維碼的,還有一個是葵花狀的小程序碼,我這里就用php生成二維碼。 首先要獲取Access_token 這個請求起來也是很容易的,微信開發(fā)文檔有請求接口:要把自己的小程序的APPID和APPSECRET獲取到 h...
摘要:微信小程序官方開放了個創(chuàng)建二維碼的接口,其中有一個是生成二維碼的,還有一個是葵花狀的小程序碼,我這里就用生成二維碼。 微信小程序官方開放了3個創(chuàng)建二維碼的接口,其中有一個是生成二維碼的,還有一個是葵花狀的小程序碼,我這里就用php生成二維碼。 首先要獲取Access_token 這個請求起來也是很容易的,微信開發(fā)文檔有請求接口:要把自己的小程序的APPID和APPSECRET獲取到 h...
摘要:我們來看一個例子,關(guān)于異常處理的一些知識點。看下面這段程序。這個方法能拋出的異常類型已經(jīng)被擦除成為了。如何消除掉這個編譯器錯誤呢把第行的改成即可。再次執(zhí)行,這次既沒有語法錯誤,也沒有運行時錯誤了已經(jīng)成功地被第行的語句捕捉住了。 文章的標題看似自相矛盾,然而我在正確二字上打了引號。我們來看一個例子,關(guān)于Java異常處理(Exception Handling)的一些知識點。 showImg...
閱讀 3637·2021-11-24 10:22
閱讀 3705·2021-11-22 09:34
閱讀 2510·2021-11-15 11:39
閱讀 1541·2021-10-14 09:42
閱讀 3676·2021-10-08 10:04
閱讀 1570·2019-08-30 15:52
閱讀 863·2019-08-30 13:49
閱讀 3032·2019-08-30 11:21