二维码生成

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.swetake.util.Qrcode;

/**
 * Servlet implementation class QrCode
 */
public class QrCode extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request,
   HttpServletResponse response) throws ServletException, IOException {
  this.doPost(request, response);
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("image/jpeg");
  String codeName = request.getParameter("transactionNo");
  Qrcode qrcode = new Qrcode();
  qrcode.setQrcodeErrorCorrect('M');
  qrcode.setQrcodeEncodeMode('B');
  qrcode.setQrcodeVersion(7);
  byte[] d = codeName.getBytes("UTF-8");
  BufferedImage bi = new BufferedImage(139, 139, BufferedImage.TYPE_INT_RGB);
  Graphics2D g = bi.createGraphics();
  g.setBackground(Color.WHITE);
  g.clearRect(0, 0, 139, 139);
  g.setColor(Color.BLACK);
  if (d.length > 0 && d.length < 123) {
   boolean[][] b = qrcode.calQrcode(d);
   for (int i = 0; i < b.length; i++) {
    for (int j = 0; j < b.length; j++) {
     if (b[j][i]) {
      g.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);
     }
    }
   }
  }
  // 生成图片
  g.dispose();
  // 向客户端返回二进制的响应,需要OutputStream
  OutputStream os = response.getOutputStream();
  // jpeg 代表图片格式
  ImageIO.write(bi, "jpg", os);
  os.flush();
 }

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二维码生成驱动C语言的过程如下: 首先,需要了解二维码的生成原理和格式。二维码是一种矩阵型的图形编码,可以存储大量信息。它的生成过程包括数据编码、纠错码计算和图形绘制三个主要步骤。 在C语言中,可以使用开源的二维码生成库,如ZXing或QRcode等。这些库提供了控制二维码生成的函数和接口,方便我们使用C语言进行二维码生成。 首先,需要初始化一个二维码生成器对象。然后,调用相关函数设置生成器的参数,如二维码版本、纠错级别、编码方式等。这些参数将影响生成的二维码的容量和可靠性。 接下来,需要将待编码的数据传递给生成器。生成器会根据设置的参数将数据编码成二维码格式。编码过程中,可以根据需要进行错误校正,以提高二维码的可靠性。 最后,调用绘制函数将生成的二维码图形绘制到指定的输出设备或文件中。绘制过程中,可以设置二维码的尺寸、颜色、间距等属性。 需要注意的是,二维码的生成需要依赖相应的驱动程序和库文件,因此在使用C语言进行二维码生成前,需要安装和配置相应的驱动和库。 总而言之,生成二维码的过程需要借助于C语言的二维码生成库,通过设置参数、传递数据、进行编码和绘制等步骤来实现。通过合理的调用和配置,可以生成符合要求的二维码图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值