一、java生成二維碼
這裏使用QRCode方式生成二維碼
需要導入的jar包的網址:
生成二維碼:http://www.swetake.com/qrcode/index-e.html
讀取二維碼:https://osdn.jp/projects/qrcode
因爲這兩個jar包的名字相同,所以導入工程時要重命名
代碼如下
生成二維碼:
public static void main(String[] args) throws IOException {
Qrcode x=new Qrcode();
x.setQrcodeErrorCorrect('M'); //糾錯等級,H,M,L,Q
x.setQrcodeEncodeMode('B');//N 代表數字 A 代表a-Z B 代表其他字符
x.setQrcodeVersion(7); //版本 0-40
String qrData = "www.taobao.com";
byte[] d =qrData.getBytes();
//byte[] d =qrData.getBytes("gb2312"); 如果有漢字的話
int width = 67 + 12*(7-1); //二維碼寬度高度的公式
int height = 67 + 12*(7-1);
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D gs = bufferedImage.createGraphics();
gs.setBackground(Color.WHITE); //設置背景顏色
gs.setColor(Color.BLACK); //設置二維碼顏色
gs.clearRect(0, 0, width, height);
int pixoff = 2;//偏移量,防止出錯
if (d.length>0 && d.length <120){
boolean[][] s = x.calQrcode(d);
for (int i=0;i<s.length;i++){
for (int j=0;j<s.length;j++){
if (s[j][i]) {
gs.fillRect(j*3+pixoff,i*3+pixoff,3,3);
}
}
}
}
gs.dispose();
bufferedImage.flush();
ImageIO.write(bufferedImage,"png",new File("F:"+File.separator+"a.png")); //將二維碼寫到F盤裏
}
讀取二維碼:
自定義類
public class MyQRCode implements QRCodeImage { //實現接口
BufferedImage bufferedImage;
public MyQRCode(BufferedImage bufferedImage){ //自定義的構造方法
this.bufferedImage = bufferedImage;
}
public int getHeight() {
return this.bufferedImage.getHeight(); //得到二維碼的高度
}
public int getPixel(int arg0, int arg1) {
return this.bufferedImage.getRGB(arg0, arg1);
}
public int getWidth() { //得到二維碼的寬度
return this.bufferedImage.getWidth();
}
}
讀取二維碼的類
public static void main(String []args) throws Exception{
File file = new File("F:"+File.separator+"a.png"); //二維碼圖片所在的路徑
BufferedImage bufferedImage = ImageIO.read(file);
QRCodeDecoder codeDecoder = new QRCodeDecoder();
//將二維碼解碼成byte數組,需要一個QRCodeImage類型的參數
//QRCodeImage是一個接口,所以我們需要自定義一個類並實現QRCodeImage接口
byte[] b = codeDecoder.decode(new MyQRCode(bufferedImage));
String s = new String(b,"gb2312");
System.out.println(s);//輸出網址
}
二、JavaScript生成二維碼
需要導入的javascript文件:jquery-qrcode-1.0.zip,這個文件的下載鏈接:https://github.com/jeromeetienne/jquery-qrcode,當然還需要引入jquery
源代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<!--jquery.qrcode.min.js文件一定要在jquery-1.7.2.min.js下引入-->
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
</head>
<body>
<!--存放二維碼的div-->
<div id="qrcode"></div>
<!--javascript代碼一定要在div下寫-->
<script type="text/javascript">
jQuery('#qrcode').qrcode("www.baidu.com");
//生成二維碼的同時可以設置寬度和高度
// jQuery('#qrcode').qrcode({width: 400,height: 400,text: "www.baidu.com"});
</script>
</body>
</html>