`

java 二维码

    博客分类:
  • java
 
阅读更多

package com.wxthtf.iot.common;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;

import org.apache.log4j.Logger;

import com.swetake.util.Qrcode;

import java.io.*;

import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.data.QRCodeImage;

/**
 * <li>Title: TwoDivCodeGenerator.java</li>
 * <li>Project: AnyIOT</li>
 * <li>Package: com.wxthtf.test</li>
 * <li>Description: </li>
 * <li>Copyright: Copyright (c) 2012</li>
 * <li>Company: wxthtf Technologies </li>
 * <li>Created on Feb 10, 2012 8:41:06 AM</li>
 *
 * @author chun_chang
 * @version 1.0.0.0
 *
 */
public class TwoDivCodeGenerator{
 private static String code = "UTF-8";
 private static final Logger log = Logger.getLogger(TwoDivCodeGenerator.class);
 /**
  * 描述:imgGenerate
  * @param srcStr
  * @param imgName 全文件名,如C:\\aaa.png
  * @param widths
  * @param heights
  * @return
  * @CreateOn Feb 10, 2012  9:37:56 AM
  * @author chun_chang
  */
 public static boolean imgGenerate(String srcStr, String imgName) {
  try {
   Qrcode qrcode = new Qrcode();
   qrcode.setQrcodeErrorCorrect('H');//LMQH
   qrcode.setQrcodeEncodeMode('B');
   qrcode.setQrcodeVersion(0);//0-15

   byte[] d = srcStr.getBytes(code);
   boolean[][] b = qrcode.calQrcode(d);
   int widths = b.length * 3 + 4;
   int heights = b.length * 3 + 4;
   
   BufferedImage bi = new BufferedImage(widths, heights, BufferedImage.TYPE_INT_RGB);
   Graphics2D g = bi.createGraphics();
   g.setBackground(Color.WHITE);
   g.setColor(Color.BLACK);
   g.clearRect(0, 0, widths, heights);

   if(d.length > 0 && d.length < 1000) {
    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);
      }
     }
    }
   } else {
    log.error("二维码字符串过长");
   }

   g.dispose();
   bi.flush();

   String imgType = imgName.substring(imgName.lastIndexOf('.') + 1, imgName.length());
   File f = new File(imgName);
   ImageIO.write(bi, imgType, f);

   return true;
  } catch(Exception e) {
   log.error(e, e);
   return false;
  }
 }

 public static String decoderImg(String fileName) {
  QRCodeDecoder decoder = new QRCodeDecoder();
  File imageFile = new File(fileName);
  BufferedImage image = null;

  String str = "";
  try {
   image = ImageIO.read(imageFile);
   str = new String(decoder.decode(new J2SEImage(image)), code);
  } catch(Exception e) {
   e.printStackTrace();
  }
  return str;
 }

 public static void main(String[] args) throws Exception {
  String testString = "清华同方";
  String fileName = "C:\\123.png";
  TwoDivCodeGenerator.imgGenerate(testString, fileName);
  
  String str = TwoDivCodeGenerator.decoderImg(fileName);
  System.out.println(str);
 }

}

class J2SEImage implements QRCodeImage{
 BufferedImage image;

 public J2SEImage(BufferedImage image){
  this.image = image;
 }

 public int getWidth() {
  return image.getWidth();
 }

 public int getHeight() {
  return image.getHeight();
 }

 public int getPixel(int x, int y) {
  return image.getRGB(x, y);
 }

}

 

分享到:
评论

相关推荐

    Java二维码生成工具

    Java二维码生成工具是一种基于Java编程语言的实用程序,它能够帮助开发者创建二维码图像,以便在各种应用场景中使用,如信息传递、网址链接、名片交换等。二维码作为一种高效的数据编码方式,已经广泛应用于现代生活...

    java二维码生成和添加中间图片

    Java二维码生成技术是一种在软件开发中常用的功能,它允许我们将数据编码成二维图像,以便于快速扫描和读取。Qrcode(二维码)是日本Denso Wave公司发明的一种矩阵式条形码,相比于传统的条形码,它能存储更多的数据...

    JS 和 java二维码生成

    本主题聚焦于"JS和Java二维码生成",我们将会深入探讨这两种编程语言如何实现二维码的创建。 首先,让我们从JavaScript(JS)开始。JS是一种轻量级的解释型编程语言,通常用于网页的客户端脚本,它可以让网页具有...

    java二维码生插件

    Java二维码生成插件是一种在Java平台上用于快速生成二维码(Qrcode)的工具。这个插件,如`Qrcode_swetake.jar`所示,提供了一种简单高效的方式来创建二维码图像,适用于各种应用场景,如数据编码、链接分享、产品...

    java二维码

    Java二维码技术是软件开发中的一种常见应用,它主要用于数据编码,可以将大量信息(如网址、文本、联系人信息等)编码成一个图形化的二维码,方便用户通过手机或其他设备扫描读取。本项目是一个完整的Java二维码生成...

    java二维码生成器

    Java二维码生成器是一种工具,它允许开发者通过编程方式在Java应用程序中创建二维码图像。二维码,全称为Quick Response Code,是一种二维条形码,能够存储大量的数据,如文本、URL、联系信息等,并且可以通过智能...

    Java二维码添加中间logo,有Zxing与QRCode两种方式

    总的来说,生成带有中间logo的Java二维码涉及图像处理、位图操作以及二维码编码技术。开发者需要熟悉Java图像库,理解二维码编码原理,以及如何有效地合并图像。这两个库都提供了丰富的选项来定制二维码的外观和性能...

    java 二维码相关Jar

    本篇文章将围绕“Java 二维码相关Jar”这一主题展开讨论,详细介绍如何使用Java进行二维码的生成与解析,并推荐几个常用的Java二维码处理库。 #### 二、二维码基础知识 二维码是一种二维条形码,能够在水平和垂直...

    java二维码工具类,中间带LOGO的,很强大

    Java二维码工具类是一种用于生成和解析二维码的编程资源,它扩展了二维码的使用,使其能够包含自定义图像,如LOGO。在这个特定的案例中,我们有一个强大的工具类,能够将LOGO集成到二维码的中心,增加了二维码的视觉...

    java 二维码生成带码包含架包

    Java 二维码生成是一个常见的编程需求,特别是在移动互联网和物联网领域,二维码被广泛用于信息传递、链接跳转等场景。这个“java 二维码生成带码包含架包”应该是一个包含完整功能的Java库,用于创建二维码图像,...

    java二维码工具类+jar包

    Java二维码工具类与jar包是开发中经常使用的资源,尤其在移动互联网时代,二维码作为数据交换的快捷方式,被广泛应用在各种场景。本资源提供了一个便捷的Java二维码生成和解析工具,结合相应的jar包,可以帮助开发者...

    java二维码生成demo

    Java二维码生成Demo是一种在Java编程环境中创建二维码图像的示例代码。二维码,全称为“Quick Response Code”,是一种二维条码,能存储大量的信息,如文本、URL、联系人信息等,广泛应用于移动支付、产品追溯等领域...

    Java 二维码生成、解析

    Java 二维码生成与解析是Java开发中常见的功能需求,尤其在移动互联网时代,二维码被广泛应用于数据交换、链接跳转、支付凭证等场景。本文将详细介绍如何使用Google的ZXing库来实现Java环境下的二维码生成与解析。 ...

    Java二维码工具jar包

    Java二维码工具jar包

    java二维码生成与解析代码实现.docx

    以下是一些关于Java二维码生成与解析的关键知识点: 1. **依赖库**: - `QRCode.jar`:这是用于生成和解码二维码的库,它可能包含了`jp.sourceforge.qrcode`和`com.swetake.util.Qrcode`这两个包,这两个包提供了...

    Java二维码生成/解析工具

    QRCodeUtils使用文档详见博客https://blog.csdn.net/qq_24091555/article/details/81263472

    java二维码制作jar包--Qrcode

    java二维码制作jar包

    java二维码生成Demo

    Java二维码生成技术是一种在Java编程环境中创建二维码图像的方法,它允许开发者将文本、链接或者其他数据编码成二维图形,便于手机扫描。在这个“java二维码生成Demo”中,我们可能看到一个简单的示例,演示如何利用...

Global site tag (gtag.js) - Google Analytics