导航:首页 > 编程语言 > java二维码

java二维码

发布时间:2022-09-18 05:44:31

A. 怎么用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,

B. 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 生成二维码

C. java如何实现二维码签到功能(二维码可以动态设置时效)

要代码这个分肯定抄不够。不袭过思路可以说下。
1、提供一个二维码生成接口,为保证时效性和安全性,二维码应该是后台生成,并带有时间戳。
2、点击二维码重新从后台获取新的二维码。
3、二维码的内容有很多种,根据不同的客户端(用户用什么签到)载体来进行确定,比如用微信扫一扫签到,则二维码内容肯定是URL。
4、签到即调用后台接口,将扫到的码内容传到后台进行匹配校验。

D. 请问java如何实现二维码一码多识

会场的二维码应该要包含会场id
然后会员扫描二维码,获得会场的id,此时会员必须登录,登录会员就能获得会员id,
然后根据会员id和会场id去跟服务器查询作为信息

E. 怎么使用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库

F. Java生成的二维码,怎样以文件流的形式直接保存到文件服务器上,而不是直接生成在本地

一般都复是生成在项目路制径下,很少生成在tomcat路径下的,增加tomcat服务器的负担,
可以通过“ 类名.class.getResource("").getPath()”获取到文件的绝对路径,之后通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
String path = XMLS.class.getResource("").getPath()“;
pw = new OutputStreamWriter(new FileOutputStream(path ),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

G. 如何使用java开发二维码代码

1: 使用SwetakeQRCode在Java项目中生成二维码
http://swetake.com/qr/ 下载地址
或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip
这个是日本人写的,生成的是我们常见的方形的二维码
可以用中文

如:5677777ghjjjjj

2: 使用BarCode4j生成条形码和二维码
BarCode4j网址:http://sourceforge.NET/projects/barcode4j/

barcode4j是使用datamatrix的二维码生成算法,为支持qr的算法
datamatrix是欧美的标准,qr为日本的标准,
barcode4j一般生成出来是长方形的
如:88777alec000yan
这个博客这方面说的挺清楚的:
http://jinshan.iteye.com/blog/1004554

3:zxing
zxing 这个是google的
下载地址
http://code.google.com/p/zxing/downloads/list

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.common.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就有实现二维码的方法
利用这个api,使用google appengine进行实现。

5:js生成二维码
使用jQuery-qrcode生成二维码
先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取),
qrcode.js 是实现二维码数据计算的核心类,
jquery.qrcode.js 是把它用jquery方式封装起来的,用它来实现图形渲染,其实就是画图(支持canvas和table两种方式)

支持的功能主要有:
Js代码:
text : "https://github.com/jeromeetienne/jquery-qrcode" //设置二维码内容

Js代码:
render : "canvas",//设置渲染方式
width : 256, //设置宽度
height : 256, //设置高度
typeNumber : -1, //计算模式
correctLevel : QRErrorCorrectLevel.H,//纠错等级
background : "#ffffff",//背景颜色
foreground : "#000000" //前景颜色
使用方式非常简单

Js代码:
jQuery('#output').qrcode({width:200,height:200,correctLevel:0,text:content});
经过简单实践,

使用canvas方式渲染性能还是非常不错的,但是如果用table方式,性能不太理想,特别是IE9以下的浏览器,所以需要自行优化一下渲染table的方式,这里就不细述了。
其实上面的js有一个小小的缺点,就是默认不支持中文。
这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的,
而这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式,
英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了。

解决方式当然是,在二维码编码前把字符串转换成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;
}

H. 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"));

I. 如何用java生成二维码

packagecommon;

importjava.awt.Color;
importjava.awt.Graphics2D;
importjava.awt.Image;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importjava.util.HashMap;
importjava.util.Map;

importjavax.imageio.ImageIO;

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

importcom.google.zxing.BarcodeFormat;
importcom.google.zxing.Binarizer;
importcom.google.zxing.BinaryBitmap;
importcom.google.zxing.EncodeHintType;
importcom.google.zxing.LuminanceSource;
importcom.google.zxing.MultiFormatReader;
importcom.google.zxing.MultiFormatWriter;
importcom.google.zxing.NotFoundException;
importcom.google.zxing.WriterException;
importcom.google.zxing.common.BitMatrix;
importcom.google.zxing.common.HybridBinarizer;
importcom.swetake.util.Qrcode;

/**
*二维码生成工具
*@authorCloud
*@data2016-12-15
*QRCode
*/

publicclassQRCodeUtil{

//二维码颜色
privatestaticfinalintBLACK=0xFF000000;
//二维码颜色
privatestaticfinalintWHITE=0xFFFFFFFF;

/**
*<spanstyle="font-size:18px;font-weight:blod;">ZXing方式生成二维码</span>
*@paramtext<ahref="javascript:void();">二维码内容</a>
*@paramwidth二维码宽
*@paramheight二维码高
*@paramoutPutPath二维码生成保存路径
*@paramimageType二维码生成格式
*/
(Stringtext,intwidth,intheight,StringoutPutPath,StringimageType){
Map<EncodeHintType,String>his=newHashMap<EncodeHintType,String>();
//设置编码字符集
his.put(EncodeHintType.CHARACTER_SET,"utf-8");
try{
//1、生成二维码
BitMatrixencode=newMultiFormatWriter().encode(text,BarcodeFormat.QR_CODE,width,height,his);

//2、获取二维码宽高
intcodeWidth=encode.getWidth();
intcodeHeight=encode.getHeight();

//3、将二维码放入缓冲流
BufferedImageimage=newBufferedImage(codeWidth,codeHeight,BufferedImage.TYPE_INT_RGB);
for(inti=0;i<codeWidth;i++){
for(intj=0;j<codeHeight;j++){
//4、循环将二维码内容定入图片
image.setRGB(i,j,encode.get(i,j)?BLACK:WHITE);
}
}
FileoutPutImage=newFile(outPutPath);
//如果图片不存在创建图片
if(!outPutImage.exists())
outPutImage.createNewFile();
//5、将二维码写入图片
ImageIO.write(image,imageType,outPutImage);
}catch(WriterExceptione){
e.printStackTrace();
System.out.println("二维码生成失败");
}catch(IOExceptione){
e.printStackTrace();
System.out.println("生成二维码图片失败");
}
}

/**
*<spanstyle="font-size:18px;font-weight:blod;">二维码解析</span>
*@paramanalyzePath二维码路径
*@return
*@throwsIOException
*/
@SuppressWarnings({"rawtypes","unchecked"})
(StringanalyzePath)throwsException{
MultiFormatReaderformatReader=newMultiFormatReader();
Objectresult=null;
try{
Filefile=newFile(analyzePath);
if(!file.exists())
{
return"二维码不存在";
}
BufferedImageimage=ImageIO.read(file);
LuminanceSourcesource=newLuminanceSourceUtil(image);
Binarizerbinarizer=newHybridBinarizer(source);
BinaryBitmapbinaryBitmap=newBinaryBitmap(binarizer);
Maphints=newHashMap();
hints.put(EncodeHintType.CHARACTER_SET,"UTF-8");
result=formatReader.decode(binaryBitmap,hints);
}catch(NotFoundExceptione){
e.printStackTrace();
}
returnresult;
}

/**
*<spanstyle="font-size:18px;font-weight:blod;">QRCode方式生成二维码</span>
*@paramcontent二维码内容
*@paramimgPath二维码生成路径
*@paramversion二维码版本
*@paramisFlag是否生成Logo图片为NULL不生成
*/
publicstaticvoidQRCodeCreate(Stringcontent,StringimgPath,intversion,StringlogoPath){
try{
QrcodeqrcodeHandler=newQrcode();
//设置二维码排错率,可选L(7%)M(15%)Q(25%)H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小
qrcodeHandler.setQrcodeErrorCorrect('M');
//N代表数字,A代表字符a-Z,B代表其他字符
qrcodeHandler.setQrcodeEncodeMode('B');
//版本1为21*21矩阵,版本每增1,二维码的两个边长都增4;所以版本7为45*45的矩阵;最高版本为是40,是177*177的矩阵
qrcodeHandler.setQrcodeVersion(version);
//根据版本计算尺寸
intimgSize=67+12*(version-1);
byte[]contentBytes=content.getBytes("gb2312");
BufferedImagebufImg=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<130){
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{
System.err.println("QRCodecontentbyteslength="+contentBytes.length+"notin[0,130].");
}
/*判断是否需要添加logo图片*/
if(logoPath!=null){
Fileicon=newFile(logoPath);
if(icon.exists()){
intwidth_4=imgSize/4;
intwidth_8=width_4/2;
intheight_4=imgSize/4;
intheight_8=height_4/2;
Imageimg=ImageIO.read(icon);
gs.drawImage(img,width_4+width_8,height_4+height_8,width_4,height_4,null);
gs.dispose();
bufImg.flush();
}else{
System.out.println("Error:login图片还在在!");
}

}


gs.dispose();
bufImg.flush();
//创建二维码文件
FileimgFile=newFile(imgPath);
if(!imgFile.exists())
imgFile.createNewFile();
//根据生成图片获取图片
StringimgType=imgPath.substring(imgPath.lastIndexOf(".")+1,imgPath.length());
//生成二维码QRCode图片
ImageIO.write(bufImg,imgType,imgFile);
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*<spanstyle="font-size:18px;font-weight:blod;">QRCode二维码解析</span>
*@paramcodePath二维码路径
*@return解析结果
*/
(StringcodePath){
FileimageFile=newFile(codePath);
BufferedImagebufImg=null;
StringdecodedData=null;
try{
if(!imageFile.exists())
return"二维码不存在";
bufImg=ImageIO.read(imageFile);

QRCodeDecoderdecoder=newQRCodeDecoder();
decodedData=newString(decoder.decode(newImageUtil(bufImg)),"gb2312");
}catch(IOExceptione){
System.out.println("Error:"+e.getMessage());
e.printStackTrace();
}catch(DecodingFailedExceptiondfe){
System.out.println("Error:"+dfe.getMessage());
dfe.printStackTrace();
}
returndecodedData;
}

}


3、最后贴测试代码:

packagetest;

importjava.awt.image.BufferedImage;
importjava.io.InputStream;
importjava.net.URL;

importjavax.imageio.ImageIO;

importcommon.ImageUtil;
importcommon.QRCodeUtil;

importjp.sourceforge.qrcode.QRCodeDecoder;

/**
*二维码生成测试类
*@authorCloud
*@data2016-11-21
*QRCodeTest
*/

publicclassQRCodeTest{

publicstaticvoidmain(String[]args)throwsException{
/**
*QRcode二维码生成测试
*QRCodeUtil.QRCodeCreate("http://blog.csdn.net/u014266877","E://qrcode.jpg",15,"E://icon.png");
*/
/**
*QRcode二维码解析测试
*StringqrcodeAnalyze=QRCodeUtil.QRCodeAnalyze("E://qrcode.jpg");
*/
/**
*ZXingCode二维码生成测试
*QRCodeUtil.zxingCodeCreate("http://blog.csdn.net/u014266877",300,300,"E://zxingcode.jpg","jpg");
*/
/**
*ZxingCode二维码解析
*StringzxingAnalyze=QRCodeUtil.zxingCodeAnalyze("E://zxingcode.jpg").toString();
*/
System.out.println("success");
}
}

J. 我已经用java生成了一个二维码了,怎样让扫描二维码后,读取到一个word文档,大神。

不用这么麻烦,直接使用二维码生成器就行了,只要上传文档,自动直接生成二维码。方便有快捷。

推荐一款目前市面上比较不错的二维码生成工具。

上传完成后保存即可生成二维码,并且生成的二维码内容支持随时修改,原码不变!

希望对你有帮助!

阅读全文

与java二维码相关的资料

热点内容
无毒电影网站推荐几个 浏览:391
iphone网络显示名称 浏览:497
AW 5FP 浏览:547
微信群发敏感词在线 浏览:718
一个外国电影,有的人有超能力 浏览:20
韩剧片 浏览:255
wps教学视频教程 浏览:484
主角建国发展类的小说 浏览:411
linux命令查找目录文件 浏览:770
北玄仙尊陈北玄的小说 浏览:355
狂怒余男迅雷下载 浏览:572
抓四人帮的电视剧叫什么 浏览:374
男主角找到世界的尽头是建模 浏览:724
蓝牙为什么能升级吗 浏览:31
js缺少分号 浏览:93
江羊电影公司作品 浏览:43
怎么样在网站下载红色警戒 浏览:775
免费看电影无vip 浏览:108
路由器手机怎么重置密码 浏览:990
小孩抗日 小说 浏览:655

友情链接