導航:首頁 > 編程語言 > java列印二維碼

java列印二維碼

發布時間:2023-08-17 00:36:44

1. 求一個用java編的二維碼生成識別的demo,希望內容完整點,萬分感謝

在java工程裡面導入QRCode.JAR包

importjava.awt.Color;
importjava.awt.Graphics2D;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;

importjavax.imageio.ImageIO;

importjp.sourceforge.qrcode.QRCodeDecoder;
importjp.sourceforge.qrcode.exception.DecodingFailedException;

importcom.swetake.util.Qrcode;

publicclassTwoDimensionCode{

/**
*生成二維碼(QRCode)圖片
*
*@paramcontent
*存儲內容
*@paramimgPath
*圖片路徑
*/
publicvoidencoderQRCode(Stringcontent,StringimgPath){
this.encoderQRCode(content,imgPath,"png",7);
}

/**
*生成二維碼(QRCode)圖片
*
*@paramcontent
*存儲內容
*@paramoutput
*輸出流
*/
publicvoidencoderQRCode(Stringcontent,OutputStreamoutput){
this.encoderQRCode(content,output,"png",7);
}

/**
*生成二維碼(QRCode)圖片
*
*@paramcontent
*存儲內容
*@paramimgPath
*圖片路徑
*@paramimgType
*圖片類型
*/
publicvoidencoderQRCode(Stringcontent,StringimgPath,StringimgType){
this.encoderQRCode(content,imgPath,imgType,7);
}

/**
*生成二維碼(QRCode)圖片
*
*@paramcontent
*存儲內容
*@paramoutput
*輸出流
*@paramimgType
*圖片類型
*/
publicvoidencoderQRCode(Stringcontent,OutputStreamoutput,
StringimgType){
this.encoderQRCode(content,output,imgType,7);
}

/**
*生成二維碼(QRCode)圖片
*
*@paramcontent
*存儲內容
*@paramimgPath
*圖片路徑
*@paramimgType
*圖片類型
*@paramsize
*二維碼尺寸
*/
publicvoidencoderQRCode(Stringcontent,StringimgPath,StringimgType,
intsize){
try{
BufferedImagebufImg=this.qRCodeCommon(content,imgType,size);

FileimgFile=newFile(imgPath);
//生成二維碼QRCode圖片
ImageIO.write(bufImg,imgType,imgFile);
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*生成二維碼(QRCode)圖片
*
*@paramcontent
*存儲內容
*@paramoutput
*輸出流
*@paramimgType
*圖片類型
*@paramsize
*二維碼尺寸
*/
publicvoidencoderQRCode(Stringcontent,OutputStreamoutput,
StringimgType,intsize){
try{
BufferedImagebufImg=this.qRCodeCommon(content,imgType,size);
//生成二維碼QRCode圖片
ImageIO.write(bufImg,imgType,output);
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*生成二維碼(QRCode)圖片的公共方法
*
*@paramcontent
*存儲內容
*@paramimgType
*圖片類型
*@paramsize
*二維碼尺寸
*@return
*/
(Stringcontent,StringimgType,intsize){
BufferedImagebufImg=null;
try{
QrcodeqrcodeHandler=newQrcode();
//設置二維碼排錯率,可選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");
//圖片尺寸
intimgSize=67+12*(size-1);
bufImg=newBufferedImage(imgSize,imgSize,
BufferedImage.TYPE_INT_RGB);
Graphics2Dgs=bufImg.createGraphics();
//設置背景顏色
gs.setBackground(Color.WHITE);
gs.clearRect(0,0,imgSize,imgSize);

//設定圖像顏色>BLACK
gs.setColor(Color.BLACK);
//設置偏移量,不設置可能導致解析出錯
intpixoff=2;
//輸出內容>二維碼
if(contentBytes.length>0&&contentBytes.length<800){
boolean[][]codeOut=qrcodeHandler.calQrcode(contentBytes);
for(inti=0;i<codeOut.length;i++){
for(intj=0;j<codeOut.length;j++){
if(codeOut[j][i]){
gs.fillRect(j*3+pixoff,i*3+pixoff,3,3);
}
}
}
}else{
thrownewException("QRCodecontentbyteslength="
+contentBytes.length+"notin[0,800].");
}
gs.dispose();
bufImg.flush();
}catch(Exceptione){
e.printStackTrace();
}
returnbufImg;
}

/**
*解析二維碼(QRCode)
*@paramimgPath圖片路徑
*@return
*/
publicStringdecoderQRCode(StringimgPath){
//QRCode二維碼圖片的文件
FileimageFile=newFile(imgPath);
BufferedImagebufImg=null;
Stringcontent=null;
try{
bufImg=ImageIO.read(imageFile);
QRCodeDecoderdecoder=newQRCodeDecoder();
content=newString(decoder.decode(newTwoDimensionCodeImage(bufImg)),"utf-8");
}catch(IOExceptione){
System.out.println("Error:"+e.getMessage());
e.printStackTrace();
}catch(DecodingFailedExceptiondfe){
System.out.println("Error:"+dfe.getMessage());
dfe.printStackTrace();
}
returncontent;
}

/**
*解析二維碼(QRCode)
*@paraminput輸入流
*@return
*/
publicStringdecoderQRCode(InputStreaminput){
BufferedImagebufImg=null;
Stringcontent=null;
try{
bufImg=ImageIO.read(input);
QRCodeDecoderdecoder=newQRCodeDecoder();
content=newString(decoder.decode(newTwoDimensionCodeImage(bufImg)),"utf-8");
}catch(IOExceptione){
System.out.println("Error:"+e.getMessage());
e.printStackTrace();
}catch(DecodingFailedExceptiondfe){
System.out.println("Error:"+dfe.getMessage());
dfe.printStackTrace();
}
returncontent;
}

publicstaticvoidmain(String[]args){
StringimgPath="G:/TDDOWNLOAD/Michael_QRCode.png";
StringencoderContent="Hello大大、小小,welcometoQRCode!"+" Myblog[http://sjsky.iteye.com]"+" EMail[[email protected]]";
TwoDimensionCodehandler=newTwoDimensionCode();
handler.encoderQRCode(encoderContent,imgPath,"png");
//try{
//OutputStreamoutput=newFileOutputStream(imgPath);
//handler.encoderQRCode(content,output);
//}catch(Exceptione){
//e.printStackTrace();
//}
System.out.println("========encodersuccess");


StringdecoderContent=handler.decoderQRCode(imgPath);
System.out.println("解析結果如下:");
System.out.println(decoderContent);
System.out.println("========decodersuccess!!!");
}
}

第二個代碼:

importjava.awt.image.BufferedImage;

importjp.sourceforge.qrcode.data.QRCodeImage;

{

BufferedImagebufImg;

publicTwoDimensionCodeImage(BufferedImagebufImg){
this.bufImg=bufImg;
}

@Override
publicintgetHeight(){
returnbufImg.getHeight();
}

@Override
publicintgetPixel(intx,inty){
returnbufImg.getRGB(x,y);
}

@Override
publicintgetWidth(){
returnbufImg.getWidth();
}

}

2. 怎麼使用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庫

3. java 如何完成二維碼的製作

參考以下代碼:

//創建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"));
System.out.println("Complete!");

需要引用Spire.Barcode for java

原文:Java 生成二維碼

4. 怎麼用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,

閱讀全文

與java列印二維碼相關的資料

熱點內容
golangweb編譯部署 瀏覽:921
怎樣踩東西解壓 瀏覽:969
單片機核心板外接鍵盤 瀏覽:394
怎樣打開自己的微信文件夾 瀏覽:424
單片機紅外測距原理 瀏覽:268
phpxdebug擴展 瀏覽:755
建築樓層凈高演算法 瀏覽:998
怎麼關閉智聯app求職狀態 瀏覽:416
pdf的文件夾怎麼列印 瀏覽:752
延拓演算法初值 瀏覽:786
首次適應演算法都不滿足的話怎麼辦 瀏覽:19
php56加密 瀏覽:556
金立手機app怎麼設置浮窗 瀏覽:494
程序員沒有社會地位 瀏覽:963
榮耀app怎麼解鎖 瀏覽:594
php程序員學歷 瀏覽:634
c語言編譯可以嗎 瀏覽:201
脂硯齋重評石頭記pdf 瀏覽:756
三星冰箱壓縮機哪裡產 瀏覽:427
唐朝加密方式 瀏覽:773