设为首页 加入收藏

TOP

二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...(一)
2014-11-23 22:38:46 】 浏览:7930
Tags:二维 相关 ---java 生成 名片 并且 自动 保存 手机 通讯录 ...

二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...

技术qq交流群:JavaDream:251572072

1.首先介绍一个api.
Zxing是Google提供的关于条码
(一维码、二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码
2、二维码的生成
  1.1 将Zxing-core.jar 包加入到classpath下。
   1.2 二维码的生成需要借助MatrixToImageWriter类,
该类是由Google提供的,可以将该类拷贝到 源码中,这里我将该类的源码贴上,可以直接使用。
import com.google.zxing.common.BitMatrix;

import javax.imageio.ImageIO;
import java.io.File;
import java.io.OutputStream;
import java.io.IOException;
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);
}
}

}
------------------------------------------------------------------------
2.下面创建一个javaproject来生成名片
------------------------------------------
项目结构如下:
ErWerMa
/ErWerMa/src
credream
credream.main
/ErWerMa/src/credream/main/CreQcode.java
credream.utils
/ErWerMa/src/credream/utils/MatrixToImageWriter.java
/ErWerMa/src/Zxing-core.jar
-------------------------------------------------------------
package credream.main;
import java.io.File;
import java.util.HashMap;
import java.util.Map;


import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;


import credream.utils.MatrixToImageWriter;


public class CreQcode {
public static void main(String[] args) {
try {
//1.下面是我测试用的一个format
// BEGIN:VCARD
// "VERSION:3.0
// N:李德伟
// EMAIL:1606841559@qq.com
// TEL:12345678912
// TEL;CELL:12345678912
// ADR:山东济南齐鲁软件园
// ORG:济南
// TITLE:软件工程师
// URL:http://blog.csdn.net/lidew521
// NOTE:呼呼测试下吧。。。
// END:VCARD"
//2.根据测试结果推理
//---------------------------------------
//测试结果不加回车是不行的这样的话会出现问题
//就是扫描出来以后会没有内容
//这里可以看出,微信解析二维码的方式
//-------------------------------------------------
//3.测试\n可以被二维码识别
// 这里也是有原因的,因为微信扫描二维码后会进行二次加工,
// 这里加工的时候,是用java代码的,因为是android系统,所以在
// java中的回车是\n,因此这里就要用\n来分割
String content = "BEGIN:VCARD\n" +
"VERSION:3.0\n" +
"N:李德伟\n" +
"EMAIL:1606841559@qq.com\n" +
"TEL:12345678912" +
"TEL;CELL:12345678912" +
"ADR:山东济南齐鲁软件园\n" +
"ORG:" +
"济南\n" +
"TITLE:软件工程师\n" +
"URL:http://blog.csdn.net/lidew521\n" +
"NOTE:呼呼测试下吧。。。\n" +
"END:VCARD";
String path = "D:/4S";

MultiFormatWriter multiFormatWriter = new MultiFormatWriter();




Ma
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇struts 2整合spring要注意的问题.. 下一篇算法实验 层序列表问题(二叉树)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目