您的位置:首页 > 编程语言 > Java开发

java代码生成二维码

2016-03-01 10:46 381 查看
准备素材  下载 ZXing-X.X.zip 

j解压包-> 我们只需要 引用 core目录里面的core.jar        javase目录里面的javase.jar

MatrixToImageWriter.java 

代码开始:

import javax.imageio.ImageIO;

import com.google.zxing.common.BitMatrix;

import java.io.File;

import java.io.OutputStream;

import java.io.IOException;

import java.util.Hashtable;

import java.awt.image.BufferedImage;

public final class MatrixToImageWriter {

private static final int BLACK = 0xFF000000;

private static final int WHITE = 0xFFFFFFFF;

private MatrixToImageWriter(){}

public static BufferedImage toBufferedImage(BitMatrix matrix) {

int width = matrix.getWidth();

int height = matrix.getHeight();

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

for (int x = 0; x < width; x++) {

for (int y = 0; y < height; y++) {

image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);

}

}

return image;

}

public static void writeToFile(BitMatrix matrix, String format, File file)

throws IOException {

BufferedImage image = toBufferedImage(matrix);

if (!ImageIO.write(image, format, file)) {

throw new IOException("Could not write an image of format " + format + " to " + file);

}

}

public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)

throws IOException {

BufferedImage image = toBufferedImage(matrix);

if (!ImageIO.write(image, format, stream)) {

throw new IOException("Could not write an image of format " + format);

}

}

}

测试代码:

//本地生成二维码图片

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.WriterException;

import com.google.zxing.common.BitMatrix;

public class TestEWM {

/**

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

String text = "http://www.baidu.com";

int width = 300;

int height = 300;

//二维码的图片格式

String format = "gif";

Hashtable hints = new Hashtable();

//内容所使用编码

hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

BitMatrix bitMatrix = new MultiFormatWriter().encode(text,

BarcodeFormat.QR_CODE, width, height, hints);

//生成二维码图片到D盘下

File outputFile = new File("d:"+File.separator+"new.gif");
MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);

}

}

<!--   ***********   结束  ********************-->

//下面是生成二维码返回给页面

@Controller

@RequestMapping("/1.0/Tracker")

@Transactional

public class TestEWM {

/**

* @param args

 * @throws IOException 

* @throws Exception

*/
@RequestMapping(method=RequestMethod.GET,value="/EWM")
@ResponseBody
public void EWM(HttpServletResponse response,HttpServletRequest request,HttpSession session) throws IOException{

try {   
           String text = "http://www.baidu.com";
           int width = 300;
           int height = 300;
           //二维码的图片格式
           String format = "gif";
           Hashtable hints = new Hashtable();
           //内容所使用编码
           hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
           BitMatrix bitMatrix = new MultiFormatWriter().encode(text,
           BarcodeFormat.QR_CODE, width, height, hints);   
           MatrixToImageWriter.writeToStream(bitMatrix, format,  response.getOutputStream());
       } catch (Exception e) {  
           e.printStackTrace();  
       }  

}

                                                                                                                                                                                                                                                             
                   ----- yt.Liu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 二维码