<%@ page contentType="image/jpeg; charset=utf-8" %>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*,java.io.*" %>
<%@ page import="com.swetake.util.Qrcode"%>
<%!
/**
* 生成二维码(QRCode)图片
* @param content 存储内容 (内容最好是英文)
* @param width 图片宽度
* @param height 图片高度
*/
public BufferedImage encoderQRCode(String content,int width,int height){
BufferedImage bufImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
int version = 6;// 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大
// 限制最小字节数为1,最大字节数为120 {和setQrcodeVersion尺寸有关系}
if(content==null || "".equals(content.trim()) || content.trim().length() > (version*10) ){
if(content==null)content="";
System.out.println("image-qrcode.jsp --> QRCode content size="+content.trim().length()+" not in [1,"+(version*10)+"]!");
return bufImg;
}
try {
Qrcode qrcodeHandler = new Qrcode();
// 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小
qrcodeHandler.setQrcodeErrorCorrect('M');
qrcodeHandler.setQrcodeEncodeMode('B');
// 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大
qrcodeHandler.setQrcodeVersion(version);
// 获得内容的字节数组,设置编码格式
byte[] contentBytes = content.trim().getBytes("gb2312");
Graphics2D gs = bufImg.createGraphics();
gs.setBackground(Color.WHITE);
gs.clearRect(0, 0, width, height);
// 设定图像颜色 > BLACK
gs.setColor(Color.BLACK);
// 设置偏移量 不设置可能导致解析出错
int pixoff = 2;
// 输出内容 > 二维码
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);
}
}
}
gs.dispose();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return bufImg;
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
//获取内容
String content = request.getParameter("f");
// 在内存中创建图象
int width=130, height=130;
BufferedImage image = encoderQRCode(content,width,height);
//输出图象到页面
ImageIO.write(image, "png", response.getOutputStream());
//add by yangyamin,防止:java.lang.IllegalStateException
out.clear();
out = pageContext.pushBody();
%>
调用
<img src='${ctx}/common/image-qrcode.jsp?f="+要生成的内容+"'/>
分享到:
相关推荐
Java QRCode二维码生成与识别是Java编程领域中的一个重要技术,主要应用于数据编码和快速信息交换。QRCode(Quick Response Code)是一种二维条码,能够存储大量的文本信息,包括字母、数字、汉字等,并且可以被各种...
Java QRcode二维码生成包是一种用于在Java环境中生成和解析二维码的工具,主要遵循QRCODE和ACTEC等国际标准。这个代码包为开发者提供了一种高效且便捷的方式,以生成适用于移动设备读取的二维码图像,进而应用于各种...
本代码为二维码生成和解析的Java实现代码,包括三个类和一个QRCode的jar包(一个jar包用于生成二维码,一个jar包用于读取二维码尤其用于读取的jar包不好下载,所以就一起放进来了,方便大家学习使用),一个生成...
在Java编程环境中,生成和解析二维码(QR Code)是一项常见的任务,特别是在移动应用、网站链接分享、电子票务等领域...总之,理解并熟练运用`qrcode.jar`可以帮助你有效地在Java项目中实现二维码的生成和解析功能。
在Java中,生成二维码是一项常见的任务,尤其在移动应用、物联网设备和数据交换等领域。ZXing(Zebra Crossing)是一个流行的开源库,用于读取和生成多种条码和二维码,包括QR码。本篇文章将深入探讨如何使用Java和...
本项目"Qrcode二维码java生成项目(带logo)"旨在帮助开发者快速创建带有自定义logo的二维码。下面将详细介绍这个项目及其相关知识点。 首先,我们需要了解的是二维码的基本原理。二维码是一种二维条形码,能够存储...
在Android平台上,生成二维码是一项常见的...通过学习这个实例,开发者可以了解如何在Android应用中集成二维码生成功能,并且掌握如何在二维码中添加Logo以增强视觉效果。同时,对于理解Zxing库的使用也有很大帮助。
QRCode二维码开发包(国标+源码+软件) QRCODE国家标准+ JAVA源代码+ 二维码生成及识别软件
QRCode二维码生成实例是一...总之,QRCode二维码生成实例是一个实用的学习资源,通过它,你可以深入了解二维码的生成过程,提升Java编程和Web服务开发的技能。在实际工作中,这种技术可以极大地便利信息的传递和交互。
本资源提供了一个Java实现的QRCode生成工具,包括了必要的jar包,使得开发者可以直接在Java环境中快速生成二维码。 首先,让我们了解QRCode的基本概念。QRCode(Quick Response Code,快速响应码)是一种二维条形码...
2. **数据结构**:二维码中的数据分为多个区域,如数据区、校验区、定位图案和静止区等。数据区包含实际要编码的信息,校验区用于错误检测和纠正,定位图案帮助扫描设备找到二维码的边角。 3. **生成算法**:源代码...
QRCode二维码技术是一种广泛应用的快速响应编码方式,它在信息技术领域扮演着重要的角色,尤其是在移动设备上用于数据交换。此压缩包"QRCode二维码生成与识别.rar"包含了一个使用IDEA2017开发的项目,该项目经过测试...
在Java编程环境中,生成带有logo的二维码是一种常见的需求,尤其在品牌推广或个性化设计中。本文将详细讲解如何使用Java实现这一功能,并确保logo居中且大小可调,以达到完美的视觉效果。 首先,我们需要引入生成...
在本例中,我们特别关注的是如何在二维码中嵌入Logo,使其更加个性化和易于识别。 要使用`QRCode.jar`,你需要先将其添加到你的项目依赖中。如果是Maven项目,可以在`pom.xml`文件中添加如下依赖: ```xml ...
Java中常见的二维码生成库有ZXing(Zebra Crossing)和Java QRCode。根据项目描述,这里可能使用了Java QRCode库,它提供了一套API用于创建二维码。`qrcode.java`可能是实现二维码生成的主要类,通过调用相关方法,...
解码成功后,打印出二维码中的文本信息。 如果需要解析多个二维码文件,可以将这段代码封装成一个方法,然后遍历指定文件夹下的所有图片文件,逐一进行解码操作。这样就可以批量处理大量二维码图片,提高工作效率。...
QRcode二维码生成源代码,Java源码,对做Andriod项目的程序员很有用,其它程序员也可以参考此源码进行其它语言的二维码开发。解压密码为:anpie.com
在Java编程环境中,生成二维码是一项常见的任务,尤其在移动应用、数据交换和信息展示等领域有着广泛的应用。要实现这个功能,通常需要引入第三方库。在这个压缩包中,包含了一个名为"demo"的示例文件,这很可能是...
Java后台生成二维码工具类
"php&qrcode二维码集成包"正是为了帮助PHP开发者轻松实现二维码的生成,将两者有效地结合在一起。 PHP生成二维码主要涉及到以下几个关键知识点: 1. **QRCode原理**:二维码是一种二维条形码,包含了更丰富的信息...