日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目ITP(一) 二维码

發(fā)布時間:2024/4/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目ITP(一) 二维码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

前言

  系列文章:[傳送門]

  上幾周碌碌無為,不行啊不行啊。博客園,不知道你幾時改版。老家了,我不會忘記你呢。呵呵,我也會在os,csdn更新的。每天一搏,不管有用沒用。

?

正文?

  正文先有項目起步,項目中的需求很明確。

    利用二維碼掃描,然后實現(xiàn)簽到功能。

  自然和app掛鉤。?沒事,一步一步來。

二維碼

?  二維碼(QR(Quick Response)code),又稱二維條碼,它是用特定的幾何圖形按一定規(guī)律在平面(二維方向)上分布的黑白相間的圖形,是所有信息數(shù)據(jù)的一把鑰匙

  

利用工具-zxing

  ZXing是一個開放源碼的,用Java實現(xiàn)的多種格式的1D/2D條碼圖像處理庫,它包含了聯(lián)系到其他語言的端口。Zxing可以實現(xiàn)使用手機的內(nèi)置的攝像頭完成條形碼的掃描及解碼。該項目可實現(xiàn)的條形碼編碼和解碼

  大家可以去了解

  https://github.com/zxing/zxing/wiki/Getting-Started-Developing

二維碼(QRCode)的生成

  /***?生成二維碼圖片*?@param?content????????內(nèi)容*?@param?width??????????寬度*?@param?height?????????高度*?@param?imgPath????????存儲圖片路徑*/

package?sedion.jeffli.wmuitp.util.zxing;import?java.io.File;import?java.util.Hashtable;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;import?com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;/***?@author?Jeff?Lee?*/public?class?ZxingEncoderHelper? {????/***?生成二維碼圖片*?@param?content????????內(nèi)容*?@param?width??????????寬度*?@param?height?????????高度*?@param?imgPath????????存儲圖片路徑?????*/public?void?encode(String?content,?int?width,?int?height,?String?imgPath)?{Hashtable<EncodeHintType,?Object>?hts?=?new?Hashtable<EncodeHintType,?Object>();hts.put(EncodeHintType.ERROR_CORRECTION,?ErrorCorrectionLevel.L);????????????????//?糾錯等級hts.put(EncodeHintType.CHARACTER_SET,?"utf-8");??????????????????????????????????//?指定編碼格式為UTF-8try{BitMatrix?bitMatrix?=?new?MultiFormatWriter().encode(content,????????????????//編碼內(nèi)容,編碼類型(這里指定為二維碼),BarcodeFormat.QR_CODE,?width,?height,?hts);??????????????????????????//圖片寬度,圖片高度,設(shè)置參數(shù)?MatrixToImageWriter.writeToFile(bitMatrix,?"png",?new?File(imgPath));????????????????????//生成的二維碼圖片}????????catch?(Exception?e)?{e.printStackTrace();}}????public?static?void?main(String[]?args)?{String?imgPath?=?"d:/33.png";String?contents?=?"你好!我的博客:http://www.cnblogs.com/Alandre/";????????int?width?=?300,?height?=?300;ZxingEncoderHelper?handler?=?new?ZxingEncoderHelper();handler.encode(contents,?width,?height,?imgPath);?} }

?#BitMatrix ?設(shè)置參數(shù)順序分別為:編碼內(nèi)容,編碼類型,生成圖片寬度,生成圖片高度,設(shè)置參數(shù)??

?#MatrixToImageWriter?生成所需要的文件

?

?你會找到這個圖片

  

 

二維碼(QRCode)的解碼

  

  /***?解碼*?@param?imgPath????????二維碼圖片路徑*?@return*/

package?sedion.jeffli.wmuitp.util.zxing;import?java.awt.image.BufferedImage;import?java.io.File;import?java.util.Hashtable;import?javax.imageio.ImageIO;import?com.google.zxing.BinaryBitmap;import?com.google.zxing.DecodeHintType;import?com.google.zxing.LuminanceSource;import?com.google.zxing.MultiFormatReader;import?com.google.zxing.Result;import?com.google.zxing.client.j2se.BufferedImageLuminanceSource;import?com.google.zxing.common.HybridBinarizer;/***?@author?Jeff?Lee?*/public?class?ZxingDecoderHandler? {????/***?解碼*?@param?imgPath????????二維碼圖片路徑*?@return*/public?String?decode(String?imgPath)?{BufferedImage?image?=?null;Result?result?=?null;????????try?{image?=?ImageIO.read(new?File(imgPath));????????????if?(image?==?null)?{System.out.println("文件不存在!");????????????????????????????????//應(yīng)該拋個異常的????????????}LuminanceSource?source?=?new?BufferedImageLuminanceSource(image);BinaryBitmap?bitmap?=?new?BinaryBitmap(new?HybridBinarizer(source));Hashtable<DecodeHintType,?Object>?hints?=?new?Hashtable<DecodeHintType,?Object>();hints.put(DecodeHintType.CHARACTER_SET,?"utf-8");result?=?new?MultiFormatReader().decode(bitmap,?hints);????????????return?result.getText();}????????catch?(Exception?e)?{e.printStackTrace();}????????return?null;}????public?static?void?main(String[]?args)?{String?imgPath?=?"d:/33.png";ZxingDecoderHandler?handler?=?new?ZxingDecoderHandler();String?content?=?handler.decode(imgPath);System.out.println("內(nèi)容如下:");System.out.println(content);??} }

?

#和生成的相反

   

總結(jié)

  二維碼生成

  二維碼解碼

?

感謝及資源共享

    

    路上走來一步一個腳印,希望大家和我一起。

    感謝讀者!很喜歡你們給我的支持。如果支持,點個贊。

    知識來源: https://github.com/zxing/zxing/wiki/Getting-Started-Developing


轉(zhuǎn)載于:https://my.oschina.net/jeffli1993/blog/227186

總結(jié)

以上是生活随笔為你收集整理的项目ITP(一) 二维码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。