成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java識(shí)別二維碼代碼 java識(shí)別二維碼代碼大全

如何使用java開發(fā)二維碼代碼

1: 使用SwetakeQRCode在Java項(xiàng)目中生成二維碼

成都創(chuàng)新互聯(lián)公司專注于紅崗企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。紅崗網(wǎng)站建設(shè)公司,為紅崗等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

下載地址

或著

這個(gè)是日本人寫的,生成的是我們常見的方形的二頌宴維碼

可以用中文

如:5677777ghjjjjj

2: 使用BarCode4j生成條形碼和二維碼

BarCode4j網(wǎng)址:

barcode4j是使用datamatrix的二維碼生成算法,為支持qr的算法

datamatrix是歐美的標(biāo)準(zhǔn),qr為日本的標(biāo)準(zhǔn),

barcode4j一般生成出來是長方形的

如:88777alec000yan

這個(gè)博客這方面說的挺清楚的:

3:zxing

zxing 這個(gè)是google的

下載地址舉櫻前

Java代碼:

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點(diǎn)抗 mon.BitMatrix;

import com.google.zxing.qrcode.QRCodeWriter;

public class QRCodeEvents {

public static void main(String []args)throws Exception{

String text = "你好";

int width = 100;

int height = 100;

String format = "png";

Hashtable hints= new Hashtable();

hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height,hints);

File outputFile = new File("new.png");

MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);

}

}

4:google chart api就有實(shí)現(xiàn)二維碼的方法

利用這個(gè)api,使用google appengine進(jìn)行實(shí)現(xiàn)。

5:JS生成二維碼

使用jQuery-qrcode生成二維碼

先簡單說一下jquery-qrcode,這個(gè)開源的三方庫(可以從 獲取),

qrcode.js 是實(shí)現(xiàn)二維碼數(shù)據(jù)計(jì)正清算的核心類,

jquery.qrcode.js 是把它用jquery方式封裝起來的,用它來實(shí)現(xiàn)圖形渲染,其實(shí)就是畫圖(支持canvas和table兩種方式)

支持的功能主要有:

Js代碼:

text : "" //設(shè)置二維碼內(nèi)容

Js代碼:

render : "canvas",//設(shè)置渲染方式

width : 256, //設(shè)置寬度

height : 256, //設(shè)置高度

typeNumber : -1, //計(jì)算模式

correctLevel : QRErrorCorrectLevel.H,//糾錯(cuò)等級(jí)

background : "#ffffff",//背景顏色

foreground : "#000000" //前景顏色

使用方式非常簡單

Js代碼:

jQuery('#output').qrcode({width:200,height:200,correctLevel:0,text:content});

經(jīng)過簡單實(shí)踐,

使用canvas方式渲染性能還是非常不錯(cuò)的,但是如果用table方式,性能不太理想,特別是IE9以下的瀏覽器,所以需要自行優(yōu)化一下渲染table的方式,這里就不細(xì)述了。

其實(shí)上面的js有一個(gè)小小的缺點(diǎn),就是默認(rèn)不支持中文。

這跟js的機(jī)制有關(guān)系,jquery-qrcode這個(gè)庫是采用 charCodeAt() 這個(gè)方式進(jìn)行編碼轉(zhuǎn)換的,

而這個(gè)方法默認(rèn)會(huì)獲取它的 Unicode 編碼,一般的解碼器都是采用UTF-8, ISO-8859-1等方式,

英文是沒有問題,如果是中文,一般情況下Unicode是UTF-16實(shí)現(xiàn),長度2位,而UTF-8編碼是3位,這樣二維碼的編解碼就不匹配了。

解決方式當(dāng)然是,在二維碼編碼前把字符串轉(zhuǎn)換成UTF-8,具體代碼如下:

function utf16to8(str) {

var out, i, len, c;

out = "";

len = str.length;

for(i = 0; i len; i++) {

c = str.charCodeAt(i);

if ((c = 0x0001) (c = 0x007F)) {

out += str.charAt(i);

} else if (c 0x07FF) {

out += String.fromCharCode(0xE0 | ((c 12) 0x0F));

out += String.fromCharCode(0x80 | ((c 6) 0x3F));

out += String.fromCharCode(0x80 | ((c 0) 0x3F));

} else {

out += String.fromCharCode(0xC0 | ((c 6) 0x1F));

out += String.fromCharCode(0x80 | ((c 0) 0x3F));

}

}

return out;

}

求一個(gè)用Java編的二維碼生成識(shí)別的demo,希望內(nèi)容完整點(diǎn),萬分感謝

在java工程段斗里面導(dǎo)入QRCode.JAR包

import?java.awt.Color;

import?java.awt.Graphics2D;

import?java.awt.image.BufferedImage;

import?java.io.File;

import?java.io.IOException;

import?java.io.InputStream;

import?java.io.OutputStream;

import?javax.imageio.ImageIO;

import?jp.sourceforge.qrcode.QRCodeDecoder;

import?jp.sourceforge.qrcode.exception.DecodingFailedException;

import?com.swetake.util.Qrcode;

public?class?TwoDimensionCode?{

/**

?*?生成二維碼(QRCode)圖片

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?imgPath

?*????????????圖片路徑

?*/

public?void?encoderQRCode(String?content,?String?imgPath)?{

this.encoderQRCode(content,?imgPath,?"png",?7);

}

/**

?*?生成二維碼(QRCode)圖片

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?output

?*????????????輸出流

?*/

public?void?encoderQRCode(String?content,?OutputStream?output)?{

this.encoderQRCode(content,?output,?"png",?7);

}

/**

?*?生成二維碼(QRCode)圖片

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?imgPath

?*????????????圖片路徑

?*?@param?imgType

?*????????????圖片類型

?*/

public?void?encoderQRCode(String?content,?String?imgPath,?String?imgType)?{

this.encoderQRCode(content,?imgPath,?imgType,?7);

}

/**

?*?生成二維碼(QRCode)圖片

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?output

?*????????????輸出流

?*?@param?imgType

?*????????????圖片類型

?*/

public?void?encoderQRCode(String?content,?OutputStream?output,

String?imgType)?{

this.encoderQRCode(content,?output,?imgType,?7);

}

/**

?*?生成二維碼(QRCode)圖片

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?imgPath

?*?????????遲槐???圖片路徑

?*?@param?imgType

?*????????????圖片類型

?*?@param?size

?*????????????二維碼尺寸

?*/

public?void?encoderQRCode(String?content,?String?imgPath,?String?imgType,

int?size)?{

try?{

BufferedImage?bufImg?=?this.qRCodeCommon(content,?imgType,?size);

File?imgFile?=?new?File(imgPath);

//?生成二維碼QRCode圖片

ImageIO.write(bufImg,?imgType,?imgFile);

}?catch?(Exception?e)?{

e.printStackTrace();

}

}

/**

?*?生成二維碼(QRCode)圖片

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?output

?*????????????輸出流

?*?@param?imgType

?*????????????圖片類型

?*?@param?size

?*???握旦磨?????????二維碼尺寸

?*/

public?void?encoderQRCode(String?content,?OutputStream?output,

String?imgType,?int?size)?{

try?{

BufferedImage?bufImg?=?this.qRCodeCommon(content,?imgType,?size);

//?生成二維碼QRCode圖片

ImageIO.write(bufImg,?imgType,?output);

}?catch?(Exception?e)?{

e.printStackTrace();

}

}

/**

?*?生成二維碼(QRCode)圖片的公共方法

?*?

?*?@param?content

?*????????????存儲(chǔ)內(nèi)容

?*?@param?imgType

?*????????????圖片類型

?*?@param?size

?*????????????二維碼尺寸

?*?@return

?*/

private?BufferedImage?qRCodeCommon(String?content,?String?imgType,?int?size)?{

BufferedImage?bufImg?=?null;

try?{

Qrcode?qrcodeHandler?=?new?Qrcode();

//?設(shè)置二維碼排錯(cuò)率,可選L(7%)、M(15%)、Q(25%)、H(30%),排錯(cuò)率越高可存儲(chǔ)的信息越少,但對(duì)二維碼清晰度的要求越小

qrcodeHandler.setQrcodeErrorCorrect('M');

qrcodeHandler.setQrcodeEncodeMode('B');

//?設(shè)置設(shè)置二維碼尺寸,取值范圍1-40,值越大尺寸越大,可存儲(chǔ)的信息越大

qrcodeHandler.setQrcodeVersion(size);

//?獲得內(nèi)容的字節(jié)數(shù)組,設(shè)置編碼格式

byte[]?contentBytes?=?content.getBytes("utf-8");

//?圖片尺寸

int?imgSize?=?67?+?12?*?(size?-?1);

bufImg?=?new?BufferedImage(imgSize,?imgSize,

BufferedImage.TYPE_INT_RGB);

Graphics2D?gs?=?bufImg.createGraphics();

//?設(shè)置背景顏色

gs.setBackground(Color.WHITE);

gs.clearRect(0,?0,?imgSize,?imgSize);

//?設(shè)定圖像顏色?BLACK

gs.setColor(Color.BLACK);

//?設(shè)置偏移量,不設(shè)置可能導(dǎo)致解析出錯(cuò)

int?pixoff?=?2;

//?輸出內(nèi)容?二維碼

if?(contentBytes.length??0??contentBytes.length??800)?{

boolean[][]?codeOut?=?qrcodeHandler.calQrcode(contentBytes);

for?(int?i?=?0;?i??codeOut.length;?i++)?{

for?(int?j?=?0;?j??codeOut.length;?j++)?{

if?(codeOut[j][i])?{

gs.fillRect(j?*?3?+?pixoff,?i?*?3?+?pixoff,?3,?3);

}

}

}

}?else?{

throw?new?Exception("QRCode?content?bytes?length?=?"

+?contentBytes.length?+?"?not?in?[0,?800].");

}

gs.dispose();

bufImg.flush();

}?catch?(Exception?e)?{

e.printStackTrace();

}

return?bufImg;

}

/**?

*?解析二維碼(QRCode)?

*?@param?imgPath?圖片路徑?

*?@return?

*/??

public?String?decoderQRCode(String?imgPath)?{??

//?QRCode?二維碼圖片的文件??

File?imageFile?=?new?File(imgPath);??

BufferedImage?bufImg?=?null;??

String?content?=?null;??

try?{??

bufImg?=?ImageIO.read(imageFile);??

QRCodeDecoder?decoder?=?new?QRCodeDecoder();??

content?=?new?String(decoder.decode(new?TwoDimensionCodeImage(bufImg)),?"utf-8");???

}?catch?(IOException?e)?{??

System.out.println("Error:?"?+?e.getMessage());??

e.printStackTrace();??

}?catch?(DecodingFailedException?dfe)?{??

System.out.println("Error:?"?+?dfe.getMessage());??

dfe.printStackTrace();??

}??

return?content;??

}??

/**?

*?解析二維碼(QRCode)?

*?@param?input?輸入流?

*?@return?

*/??

public?String?decoderQRCode(InputStream?input)?{??

BufferedImage?bufImg?=?null;??

String?content?=?null;??

try?{??

bufImg?=?ImageIO.read(input);??

QRCodeDecoder?decoder?=?new?QRCodeDecoder();??

content?=?new?String(decoder.decode(new?TwoDimensionCodeImage(bufImg)),?"utf-8");???

}?catch?(IOException?e)?{??

System.out.println("Error:?"?+?e.getMessage());??

e.printStackTrace();??

}?catch?(DecodingFailedException?dfe)?{??

System.out.println("Error:?"?+?dfe.getMessage());??

dfe.printStackTrace();??

}??

return?content;??

}??

public?static?void?main(String[]?args)?{??

String?imgPath?=?"G:/TDDOWNLOAD/Michael_QRCode.png";??

String?encoderContent?=?"Hello?大大、小小,welcome?to?QRCode!"?+?"\nMyblog?[??]"?+?"\nEMail?[?sjsky007@gmail點(diǎn)抗 ?]";??

TwoDimensionCode?handler?=?new?TwoDimensionCode();??

handler.encoderQRCode(encoderContent,?imgPath,?"png");??

//??????try?{??

//??????????OutputStream?output?=?new?FileOutputStream(imgPath);??

//??????????handler.encoderQRCode(content,?output);??

//??????}?catch?(Exception?e)?{??

//??????????e.printStackTrace();??

//??????}??

System.out.println("========encoder?success");??

String?decoderContent?=?handler.decoderQRCode(imgPath);??

System.out.println("解析結(jié)果如下:");??

System.out.println(decoderContent);??

System.out.println("========decoder?success!!!");??

}??

}

第二個(gè)代碼:

import?java.awt.image.BufferedImage;??

import?jp.sourceforge.qrcode.data.QRCodeImage;??

public?class?TwoDimensionCodeImage?implements?QRCodeImage?{??

BufferedImage?bufImg;??

public?TwoDimensionCodeImage(BufferedImage?bufImg)?{??

this.bufImg?=?bufImg;??

}??

@Override??

public?int?getHeight()?{??

return?bufImg.getHeight();??

}??

@Override??

public?int?getPixel(int?x,?int?y)?{??

return?bufImg.getRGB(x,?y);??

}??

@Override??

public?int?getWidth()?{??

return?bufImg.getWidth();??

}??

}

想做一個(gè)掃一掃的功能,js和后端java怎么寫

這個(gè)是js調(diào)用原生的方法行畢裂去做的;

js調(diào)用原生方法,原生方法調(diào)用設(shè)備硬件(照相機(jī)/攝數(shù)李像頭檔閉)去掃描二維碼

網(wǎng)站名稱:java識(shí)別二維碼代碼 java識(shí)別二維碼代碼大全
本文地址:http://jinyejixie.com/article4/ddpijoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、用戶體驗(yàn)、外貿(mào)網(wǎng)站建設(shè)、軟件開發(fā)、自適應(yīng)網(wǎng)站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
甘德县| 横山县| 土默特右旗| 九龙坡区| 乳山市| 城步| 灯塔市| 正定县| 皮山县| 太白县| 邵阳县| 旌德县| 股票| 松桃| 台前县| 平潭县| 理塘县| 公主岭市| 商南县| 平湖市| 阆中市| 广河县| 武宁县| 甘孜县| 汶川县| 泽普县| 湟源县| 朝阳市| 古交市| 安图县| 西城区| 轮台县| 科技| 东方市| 吉首市| 建始县| 佛冈县| 齐河县| 和平区| 吉木萨尔县| 石家庄市|