當前位置:首頁 » 編程語言 » java二維碼生成

java二維碼生成

發布時間: 2022-10-21 21:40:17

❶ 什麼是二維碼生成器意思概念介紹生成原理

二維碼生成器的製作需要一個二維碼生成演算法,或者一個二維碼插件,那麼你對二維碼生成器了解多少呢?以下是由我整理關於什麼是二維碼生成器的內容,希望大家喜歡!

什麼是二維碼生成器

二維碼生成器的應用原理其實就是二維碼生成軟體,你可以將信息輸入到二維碼生成器中,生成相應的二維碼,然後進行保存應用。

二維碼生成器生成原理

二維碼其實就是由很多0、1組成的數字矩陣。二維條碼/二維碼 (2-dimensional bar code) 是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的“0”、“1”比特流行的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖象輸入設備或光電掃描設備自動識讀以實現信息自動處理:它具有條碼技術的一些共性:每種碼制有其特定的字元集;每個字元佔有一定的寬度;具有一定的校驗功能等。同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。 二維條碼/二維碼能夠在橫向和縱向兩個方位同時表達信息,因此能在很小的面積內表達大量的信息。

二維碼生成器的製作需要一個二維碼生成演算法,或者一個二維碼插件,然後用java ,C#,VB等編程語言編寫一個調用軟體就可以做成二維碼生成器了。

這個二維碼生成演算法就是將組成二維碼的0、1數字矩陣進行組合,輸入二維碼生成器的信息不同,所得到的0、1數字矩陣組合也不相同,因此生成的二維碼樣式就各種各樣。

二維碼生成器推廣應用

二維碼和手機攝像頭以及二維碼和計算機的配合將產生多種多樣的應用,比如今後我們可以在自己的名片上印上二維碼,別人只需用安裝二維碼識別軟體的攝像手機輕松一拍,名片上的各種資料就全部輸入手機啦;如果超市的商品也印上二維碼,我們就可以在手機上獲得關於該商品的大量詳細信息。2011年初二維碼已經在日本和韓國獲得廣泛應用,台灣和大陸地區也已經開始推廣,今後我們可以用二維碼在自動販售機買可樂、繳費、網上購物等等,二維碼在我們以後的生活中將會越來越廣泛的應用。

2012年中旬,G商通就技術開發了二維碼抽獎,二維碼會員積分,二維碼優惠券下載,二維碼簽到,二維碼產品防偽等功能,使二維碼的應用變得廣泛。隨著科技的不斷發展,二維碼的市場應用以及生活應用會越來越廣泛。

二維碼生成器類型分類

二維條碼/二維碼可以分為堆疊式/行排式二維條碼和矩陣式二維條碼。堆疊式/行排式二維條碼形態上是由多行短截的一維條碼堆疊而成;矩陣式二維條碼以矩陣的形式組成,在矩陣相應元素位置上用“點”表示二進制“1”, 用“空”表示二進制“0”,由“點”和“空”的排列組成代碼。

堆疊式/行排式二維碼

堆疊式/行排式二維條碼(又稱堆積式二維條碼或層排式二維條碼),其編碼原理是建立在一維條碼基礎之上,按需要堆積成二行或多行。它在編碼設計、校驗原理、識讀方式等方面繼承了一維條碼的一些特點,識讀設備與條碼印刷與一維條碼技術兼容。但由於行數的增加,需要對行進行判定,其解碼演算法與軟體也不完全相同於一維條碼。有代表性的行排式二維條碼有:Code 16K、Code 49、PDF417等。

矩陣式二維碼

短陣式二維條碼(又稱棋盤式二維條碼)它是在一個矩形空間通過黑、白像素在矩陣中的不同分布進行編碼。在矩陣相應元素位置上,用點(方點、圓點或其他形狀)的出現表示二進制“1”,點的不出現表示二進制的“0”,點的排列組合確定了矩陣式二維條碼所代表的意義。矩陣式二維條碼是建立在計算機圖像處理技術、組合編碼原理等基礎上的一種新型圖形符號自動識讀處理碼制。具有代表性的矩陣式二維條碼有:Code One、Maxi Code、QR Code、 Data Matrix等。

在幾十種二維要碼中,常用的碼制有:G商通二維碼,PDF417二維條碼,Datamatrix二維條碼,Maxicode二維條碼,QR Code,Code 49,Code 16K,Code one等,除了這些常見的二維條碼之外,還有Vericode條碼、CP條碼、Codablock F條碼、田字碼、 Ultracode條碼,Aztec條碼。

❷ java生成二維碼如何去除白邊

代碼如下:
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
hints.put(EncodeHintType.MARGIN, 0);
BitMatrix bitMatrix = new QRCodeWriter().encode("生成二維碼的內容",
BarcodeFormat.QR_CODE, 256, 256,hints);
//1.1去白邊
int[] rec = bitMatrix.getEnclosingRectangle();
int resWidth = rec[2] + 1;
int resHeight = rec[3] + 1;
BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);
resMatrix.clear();
for (int i = 0; i < resWidth; i++) {
for (int j = 0; j < resHeight; j++) {
if (bitMatrix.get(i + rec[0], j + rec[1])) {
resMatrix.set(i, j);
}
}
}
//2
int width = resMatrix.getWidth();
int height = resMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, resMatrix.get(x, y) == true ?
Color.BLACK.getRGB():Color.WHITE.getRGB());
}
}
//3
ImageIO.write(image,"png", new File("生成二維碼保存的路徑"));

2
這時候生成的二維碼圖片就沒有四周的白邊了。

❸ java怎麼做二維碼

專門的生成二維碼工具,直接調用就行,比如zxing、qrcode等等

❹ java 生成二維碼後如何給該二維碼添加信息

java可使用zxing生成二維碼並為其添加信息。
以下是詳細步驟:
1、創建MatrixToImageWriter類

importcom.google.zxing.common.BitMatrix;
importjavax.imageio.ImageIO;
importjava.io.File;
importjava.io.OutputStream;
importjava.io.IOException;
importjava.awt.image.BufferedImage;


{

privatestaticfinalintBLACK=0xFF000000;
privatestaticfinalintWHITE=0xFFFFFFFF;

privateMatrixToImageWriter(){}


(BitMatrixmatrix){
intwidth=matrix.getWidth();
intheight=matrix.getHeight();
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
for(intx=0;x<width;x++){
for(inty=0;y<height;y++){
image.setRGB(x,y,matrix.get(x,y)?BLACK:WHITE);
}
}
returnimage;
}


publicstaticvoidwriteToFile(BitMatrixmatrix,Stringformat,Filefile)
throwsIOException{
BufferedImageimage=toBufferedImage(matrix);
if(!ImageIO.write(image,format,file)){
thrownewIOException("Couldnotwriteanimageofformat"+format+"to"+file);
}
}


publicstaticvoidwriteToStream(BitMatrixmatrix,Stringformat,OutputStreamstream)
throwsIOException{
BufferedImageimage=toBufferedImage(matrix);
if(!ImageIO.write(image,format,stream)){
thrownewIOException("Couldnotwriteanimageofformat"+format);
}
}

}


2、生成二維碼並添加信息

importjava.io.File;
importjava.util.Hashtable;

importcom.google.zxing.BarcodeFormat;
importcom.google.zxing.EncodeHintType;
importcom.google.zxing.MultiFormatWriter;
importcom.google.zxing.WriterException;
importcom.google.zxing.common.BitMatrix;

publicclassTest{

/**
*@paramargs
*@throwsException
*/
publicstaticvoidmain(String[]args)throwsException{
Stringtext="http://www..com";
intwidth=300;
intheight=300;
//二維碼的圖片格式
Stringformat="gif";
Hashtablehints=newHashtable();
//內容所使用編碼
hints.put(EncodeHintType.CHARACTER_SET,"utf-8");
BitMatrixbitMatrix=newMultiFormatWriter().encode(text,
BarcodeFormat.QR_CODE,width,height,hints);
//生成二維碼
FileoutputFile=newFile("d:"+File.separator+"new.gif");
MatrixToImageWriter.writeToFile(bitMatrix,format,outputFile);

}

}

❺ Java如何用代碼生成二維碼

引用spire.barcode.jar包

//創建BarcodeSettings對象
BarcodeSettingssettings=newBarcodeSettings();
//設置條碼類型為
QR二維碼settings.setType(BarCodeType.QR_Code);
//設置二維碼數據
settings.setData("Hello123456789");
//設置二維碼顯示數據
settings.setData2D("Hello123456789");
//設置數據類型
settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);
//設置二維碼模型寬度
settings.setX(1.0f);
//設置二維碼糾錯級別settings.setQRCodeECL(QRCodeECL.H);
//創建BarCodeGenerator實例
=newBarCodeGenerator(settings);
//根據settings生成圖像數據,保存至BufferedImage
BufferedImagebufferedImage=barCodeGenerator.generateImage();
//將圖片數據保存為PNG格式
ImageIO.write(bufferedImage,"png",newFile("QRCode.png"));

❻ 怎麼使用java生成DataMatrix格式的二維碼

參考:

  1. import com.spire.barcode.BarCodeGenerator;

  2. import com.spire.barcode.BarCodeType;

  3. import com.spire.barcode.BarcodeSettings;

  4. import javax.imageio.ImageIO;

  5. import java.awt.*;

  6. import java.awt.image.BufferedImage;

  7. import java.io.File;


  8. public class CreateDataMatrix {


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


  10. //生成BarcodeSettings實例

  11. BarcodeSettings settings = new BarcodeSettings();

  12. //設置條形碼類型為DataMatrix

  13. settings.setType(BarCodeType.Data_Matrix);

  14. //設置條形碼模型寬度

  15. settings.setX(1.5f);

  16. //設置數據和顯示文本

  17. settings.setData("ABC 123456789ABC 123456789ABC 123456789");

  18. settings.setData2D("ABC 123456789ABC 123456789ABC 123456789");

  19. //創建BarCodeGenerator實例

  20. BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);

  21. //根據settings生成圖像數據,保存至BufferedImage實例

  22. BufferedImage bufferedImage = barCodeGenerator.generateImage();

  23. //保存為PNG圖片

  24. ImageIO.write(bufferedImage, "png", new File("DataMatrix.png"));

  25. System.out.println("Complete!");

  26. }

  27. }

用到了spire.barcode for java庫

❼ 我已經用java生成了一個二維碼了,怎樣讓掃描二維碼後,讀取到一個word文檔,大神。

不用這么麻煩,直接使用二維碼生成器就行了,只要上傳文檔,自動直接生成二維碼。方便有快捷。

推薦一款目前市面上比較不錯的二維碼生成工具。

上傳完成後保存即可生成二維碼,並且生成的二維碼內容支持隨時修改,原碼不變!

希望對你有幫助!

❽ 使用java如何運用混淆演算法生成二維碼

需要的jar: qrcode.jar和 qrcode_swetake.jar,以及一個工具類,下面有。
package com.sbm.wll.image;
/**
* Java 生成二維碼,解析二維碼
*/
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 com.swetake.util.Qrcode;
import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.exception.DecodingFailedException;
public class Image {
/**
* 生成二維碼圖片文件
*
* @param content
* 存儲內容
* @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);
System.out.println("二維碼生成成功,路徑:" + imgPath);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生成二維碼,流輸出
*/
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);
System.out.println("二維碼生成成功,流輸出");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生成二維碼(QRCode)圖片的基本方法
*/
private BufferedImage qRCodeCommon(String content, String imgType, int size) {
BufferedImage bufImg = null;
try {
Qrcode qrcodeHandler = new Qrcode();
// 設置二維碼排錯率,可選L(7%)、M(15%)、Q(25%)、H(30%),排錯率越高可存儲的信息越少,但對二維碼清晰度的要求越小
qrcodeHandler.setQrcodeErrorCorrect('M');
qrcodeHandler.setQrcodeEncodeMode('B');
// 設置設置二維碼尺寸,取值范圍1-40,值越大尺寸越大,可存儲的信息越大
qrcodeHandler.setQrcodeVersion(size);
// 獲得內容的位元組數組,設置編碼格式
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();
// 設置背景顏色
gs.setBackground(Color.WHITE);
gs.clearRect(0, 0, imgSize, imgSize);
// 設定圖像顏色> BLACK
gs.setColor(Color.BLACK);
// 設置偏移量,不設置可能導致解析出錯
int pixoff = 2;
// 輸出內容> 二維碼

❾ 怎麼用java代碼把一個鏈接生成二維碼

參考代碼
import java.io.*;
import java.util.Date;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class QRCodeEncoderTest
{
/** Creates a new instance of QRCodeEncoderTest */
public QRCodeEncoderTest()
{
}
public static void create_image(String sms_info)throws Exception{
try{
qrcode testQrcode =new qrcode();
testQrcode.setQrcodeErrorCorrect('M');
testQrcode.setQrcodeEncodeMode('B');
testQrcode.setQrcodeVersion(7);
String testString = sms_info;
byte[] d = testString.getBytes("gbk");
System.out.println(d.length);
//BufferedImage bi = new BufferedImage(98, 98, BufferedImage.TYPE_INT_RGB);
BufferedImage bi = new BufferedImage(98, 98,

熱點內容
sql創建鏈接 發布:2025-07-08 00:08:38 瀏覽:398
ftp上傳中斷 發布:2025-07-08 00:08:37 瀏覽:641
linux雲計算課程 發布:2025-07-08 00:07:23 瀏覽:23
安卓網易雲怎麼發布歌曲 發布:2025-07-07 23:42:29 瀏覽:626
安卓內存讀取腳本 發布:2025-07-07 23:42:19 瀏覽:871
python27漢化 發布:2025-07-07 23:42:18 瀏覽:721
源碼鎖屏 發布:2025-07-07 23:26:52 瀏覽:943
手機版編程軟體 發布:2025-07-07 22:57:22 瀏覽:122
linux下執行sh腳本 發布:2025-07-07 22:49:00 瀏覽:127
雲盤怎麼存儲資料 發布:2025-07-07 22:49:00 瀏覽:915