资源简介
使用zxing生成vcard格式的二维码名片,自动下载
代码片段和文件信息
package com.futong.qcode;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.OutputStream;
import java.util.Hashtable;
import java.util.Random;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class QRCodeUtil {
private static final String CHARSET = “utf-8“;
private static final String FORMAT_NAME = “JPG“;
// 二维码尺寸
private static final int QRCODE_SIZE = 300;
// LOGO宽度
private static final int WIDTH = 60;
// LOGO高度
private static final int HEIGHT = 60;
private static BufferedImage createImage(String content String imgPath
boolean needCompress) throws Exception {
Hashtableject> hints = new Hashtableject>();
hints.put(EncodeHintType.ERROR_CORRECTION ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET CHARSET);
// hints.put(EncodeHintType.MARGIN 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(content
BarcodeFormat.QR_CODE QRCODE_SIZE QRCODE_SIZE hints);
int width = bitMatrix.getWidth();
int height = bitMatrix.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 bitMatrix.get(x y) ? 0xFF000000
: 0xFFFFFFFF);
}
}
if (imgPath == null || ““.equals(imgPath)) {
return image;
}
// 插入图片
QRCodeUtil.insertImage(image imgPath needCompress);
return image;
}
/**
* 插入LOGO
*
* @param source
* 二维码图片
* @param imgPath
* LOGO图片地址
* @param needCompress
* 是否压缩
* @throws Exception
*/
private static void insertImage(BufferedImage source String imgPath
boolean needCompress) throws Exception {
File file = new File(imgPath);
if (!file.exists()) {
System.err.println(““+imgPath+“ 该文件不存在!“);
return;
}
Image src = ImageIO.read(new File(imgPath));
int width = src.getWidth(null);
int height = src.getHeight(null);
if (needCompress) { // 压缩LOGO
if (width > WIDTH) {
widt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-21 09:47 qcode\
文件 728 2016-01-21 14:02 qcode\.classpath
文件 1038 2016-01-21 09:48 qcode\.project
目录 0 2016-01-21 10:06 qcode\.settings\
文件 567 2016-01-21 09:48 qcode\.settings\.jsdtscope
文件 69 2016-01-21 10:06 qcode\.settings\org.eclipse.core.resources.prefs
文件 670 2016-01-21 10:03 qcode\.settings\org.eclipse.jdt.core.prefs
文件 467 2016-01-21 09:48 qcode\.settings\org.eclipse.wst.common.component
文件 305 2016-01-21 10:03 qcode\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2016-01-21 09:48 qcode\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2016-01-21 09:48 qcode\.settings\org.eclipse.wst.jsdt.ui.superType.name
目录 0 2016-01-21 09:47 qcode\build\
目录 0 2016-01-21 14:02 qcode\build\classes\
目录 0 2016-01-21 14:02 qcode\build\classes\com\
目录 0 2016-01-21 14:02 qcode\build\classes\com\futong\
目录 0 2016-01-21 14:02 qcode\build\classes\com\futong\qcode\
目录 0 2016-01-21 14:02 qcode\build\classes\com\futong\qcode\filter\
文件 1700 2016-01-21 14:02 qcode\build\classes\com\futong\qcode\filter\CharactorFilter.class
文件 9339 2016-01-21 14:02 qcode\build\classes\com\futong\qcode\QRCodeUtil.class
目录 0 2016-01-21 14:02 qcode\build\classes\com\futong\qcode\servlet\
文件 3203 2016-01-21 15:05 qcode\build\classes\com\futong\qcode\servlet\DownLoad.class
目录 0 2016-01-21 09:48 qcode\src\
目录 0 2016-01-21 09:48 qcode\src\com\
目录 0 2016-01-21 09:48 qcode\src\com\futong\
目录 0 2016-01-21 13:25 qcode\src\com\futong\qcode\
目录 0 2016-01-21 13:26 qcode\src\com\futong\qcode\filter\
文件 1088 2016-01-21 13:26 qcode\src\com\futong\qcode\filter\CharactorFilter.java
文件 10259 2016-01-21 13:31 qcode\src\com\futong\qcode\QRCodeUtil.java
目录 0 2016-01-21 13:03 qcode\src\com\futong\qcode\servlet\
文件 2373 2016-01-21 15:05 qcode\src\com\futong\qcode\servlet\DownLoad.java
目录 0 2016-01-21 13:32 qcode\WebContent\
............此处省略26个文件信息
相关资源
- JAVA JSP题库组卷管理系统 源代码 论文
- java金融项目开发-银行核心系统业务介
- WXPayUtil.java
- java实现工作流以及工作流的处理
- java超级玛丽游戏
- 200道Java程序设计练习题 PDF
-
java中li
nkedList任意排序 - 邮件客户端程序
- java连接vfp数据库的
- 《Java从入门到精通》第四版pdf及光盘
- Java开发软件整理Maven、Eclipse、JDK8、
- java 毕业设计外文翻译
- 协同过滤推荐系统 Java
- 实现学生信息管理系统
- Java实现的Apriori算法附测试数据
- JAVA写的四子棋
- 广工Java实验+课设
- java+Access登陆界面
- Java实现的简单JPEG编码程序
- javaweb登陆注册界面
- java web房屋出租系统项目
- 学生成绩管理系统 java源码 以及项目
- 数字时钟java源码
- mchange-commons-java-0.2.15.jar
-
ob
jectOrientedProgrammingwithJava.pdf - java项目实战适合初学者
- 数字图像处理java版源代码
- Java 、Android实现MP4裁剪功能
- java实现RSA算法的大整数编程----实现对
- SHA1或MD5算法获取文件摘要值(JAVA)
评论
共有 条评论