摘要:二維碼是根據(jù)一定規(guī)則生成,存儲(chǔ)信息的小圖片。比如可以存儲(chǔ)參數(shù)存儲(chǔ)等內(nèi)容。
二維碼是根據(jù)一定規(guī)則生成,存儲(chǔ)信息的小圖片。比如可以存儲(chǔ)參數(shù)存儲(chǔ)url等內(nèi)容。掃描之后將能獲得這些內(nèi)容
下文為普通二維碼的生成,可自定義二維碼的大小,定義二維碼中存儲(chǔ)的數(shù)據(jù)內(nèi)容
1.下文使用的二維碼生成jar坐標(biāo)
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 {
// 默認(rèn)二維碼寬度 public static final int WIDTH = 300; // 默認(rèn)二維碼高度 public static final int HEIGHT = 300; // 默認(rèn)二維碼文件格式 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)容即要存儲(chǔ)在二維碼中的內(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/75752.html
什么是Leancloud Leancloud是國內(nèi)有名的BaaS提供商,什么是BaaS提供商呢?通俗點(diǎn)講就是給你提供增刪改查等后臺(tái)服務(wù)的API,你通過這些API就可以將數(shù)據(jù)存儲(chǔ)在云端數(shù)據(jù)庫中,而不需要關(guān)系服務(wù)器環(huán)境和里面的處理邏輯,它提供的SDK有js、java、object-c、python等等。 類似的BaaS提供商還有谷歌的firebase(www.firebase.com),但容易被墻不...
摘要:業(yè)務(wù)具體介紹,本系統(tǒng)是一個(gè)共享圖書的小程序項(xiàng)目,企業(yè)級(jí),創(chuàng)業(yè)項(xiàng)目。具體業(yè)務(wù)流程類似共享自行車,也有設(shè)計(jì)押金月卡季卡等等。以上是單個(gè)頁面的實(shí)現(xiàn)基本文件目錄。其中還涉及微信支付環(huán)節(jié)。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出閱讀本文約3分鐘適讀人群:Java后端、Java初級(jí)、小程序前端 本文是兩個(gè)GitHub項(xiàng)目的序章,旨在指導(dǎo)初級(jí)程序員完成一個(gè)企業(yè)級(jí)共享項(xiàng)目的前后端代碼實(shí)踐,豐富自身的實(shí)戰(zhàn)經(jīng)...
摘要:微信小程序官方開放了個(gè)創(chuàng)建二維碼的接口,其中有一個(gè)是生成二維碼的,還有一個(gè)是葵花狀的小程序碼,我這里就用生成二維碼。 微信小程序官方開放了3個(gè)創(chuàng)建二維碼的接口,其中有一個(gè)是生成二維碼的,還有一個(gè)是葵花狀的小程序碼,我這里就用php生成二維碼。 首先要獲取Access_token 這個(gè)請(qǐng)求起來也是很容易的,微信開發(fā)文檔有請(qǐng)求接口:要把自己的小程序的APPID和APPSECRET獲取到 h...
摘要:微信小程序官方開放了個(gè)創(chuàng)建二維碼的接口,其中有一個(gè)是生成二維碼的,還有一個(gè)是葵花狀的小程序碼,我這里就用生成二維碼。 微信小程序官方開放了3個(gè)創(chuàng)建二維碼的接口,其中有一個(gè)是生成二維碼的,還有一個(gè)是葵花狀的小程序碼,我這里就用php生成二維碼。 首先要獲取Access_token 這個(gè)請(qǐng)求起來也是很容易的,微信開發(fā)文檔有請(qǐng)求接口:要把自己的小程序的APPID和APPSECRET獲取到 h...
摘要:我們來看一個(gè)例子,關(guān)于異常處理的一些知識(shí)點(diǎn)。看下面這段程序。這個(gè)方法能拋出的異常類型已經(jīng)被擦除成為了。如何消除掉這個(gè)編譯器錯(cuò)誤呢把第行的改成即可。再次執(zhí)行,這次既沒有語法錯(cuò)誤,也沒有運(yùn)行時(shí)錯(cuò)誤了已經(jīng)成功地被第行的語句捕捉住了。 文章的標(biāo)題看似自相矛盾,然而我在正確二字上打了引號(hào)。我們來看一個(gè)例子,關(guān)于Java異常處理(Exception Handling)的一些知識(shí)點(diǎn)。 showImg...
閱讀 3626·2021-11-24 10:22
閱讀 3695·2021-11-22 09:34
閱讀 2498·2021-11-15 11:39
閱讀 1536·2021-10-14 09:42
閱讀 3669·2021-10-08 10:04
閱讀 1564·2019-08-30 15:52
閱讀 854·2019-08-30 13:49
閱讀 3025·2019-08-30 11:21