导航:首页 > 编程语言 > 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打印二维码相关的资料

热点内容
苹果怎么下载整理文字软件app 浏览:130
怎么删除一个app下载任务 浏览:713
python执行bat命令 浏览:471
什么吉他调音器app最好 浏览:33
php程序员招聘试题 浏览:14
程序员升职记第九关最优解 浏览:317
三星安卓11怎么访问data文件夹 浏览:817
华三服务器怎么设置开机自启 浏览:711
钉邮登录服务器地址 浏览:644
起源编译器适配第二款应用 浏览:433
cad弄断线条命令 浏览:463
怎么恢复手机app的安装包 浏览:300
idea重启项目不编译 浏览:495
程序员那么可爱演员表陆漓妈妈 浏览:127
linuxgadget驱动 浏览:594
华三调用acl的命令 浏览:9
资金流pdf 浏览:931
金融结算法补充条款 浏览:291
什么叫服务器怎么连接 浏览:521
空调压缩机有制冷但室内不是很冷 浏览:839