生成一个url的二维码
来源:互联网 发布:学c4d 知乎 编辑:程序博客网 时间:2024/04/30 10:59
1.调用的是zxing中的core架包 http://download.csdn.net/detail/u013946257/9411484
2.代码如下:
package app.core.qrCode;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import javax.imageio.ImageIO;
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 Test {
private static final int width = 300;
private static final int height = 300;
private static final String format = "jpg";
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
public static void main (String[] args) throws IOException, WriterException {
String text = "http://www.timeface.cn";
BufferedImage image = createQRCode(text);
}
/**
*
* @param text 需要生成二维码的预览地址
* @return 二维码图片
* @throws WriterException
* @throws IOException
*/
public static BufferedImage createQRCode(String text) throws WriterException, IOException {
// 生成二维码文件名
String name = "";
Pattern p = Pattern.compile("\\/(\\d)+\\/");
Matcher m = p.matcher(text);
if (m.find()) {
name = m.group().substring(1, m.group().length() -1);
}
Hashtable hints = new Hashtable();
// 内容所使用编码
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);
// 去除二维码边距
int[] rec = bitMatrix.getEnclosingRectangle();
int newWidth = rec[2] + 1;
int newHeight = rec[3] + 1;
BitMatrix newBitMatrix = new BitMatrix(newWidth, newHeight);
newBitMatrix.clear();
for (int i = 0; i < newWidth; i++) {
for (int j = 0; j < newHeight; j++) {
if (bitMatrix.get(i + rec[0], j + rec[1])) {
newBitMatrix.set(i, j);
}
}
}
// 生成二维码
File outputFile = new File("d:" + File.separator + name + "." + format);
int width = newBitMatrix.getWidth();
int height = newBitMatrix.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, newBitMatrix.get(x, y) ? BLACK : WHITE);
}
}
// 在相应路径输出图片
if (!ImageIO.write(image, format, outputFile)) {
throw new IOException("Could not write an image of format " + format + " to " + outputFile);
}
return image;
}
}
- 生成一个url的二维码
- 根据url生成二维码
- 二维码的 扫描 扫描本地图库 生成一个二维码
- 一个简单的Android生成二维码Demo。
- qrcode生成一个带有图片的二维码
- 一个有趣的二维码生成库Qart
- 一个简单的二维码生成小程序
- iOS根据URL生成二维码
- 根据url生成二维码方法
- 几个常用的url生成二维码的接口
- Java使用zpxing.jar生成带url的二维码
- Java中生成网站链接(URL)的二维码
- java (URL)生成二维码 代码以及遇到的问题
- 如何生成一个二维码
- 二维码url的长度
- 【iOS】CoreImage原生二维码生成(二)一个方法生成带logo的二维码
- Android 生成带Logo的二维码或普通的二维码,后续将会推出一个java exe二维码生成插件
- 使用javaScript在线生成url二维码
- oracle 分页优化
- linux常用命令—— 系统设置(八)
- Python基础语法
- Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
- AWR Reports
- 生成一个url的二维码
- 【Python】Flask-RESTful使用
- java游戏服务端实现
- VIM选择文本块/复制/粘贴
- JQuery中DOM事件冒泡实例分析
- Python Django
- activiti 数据库配置错误:ORA-12505, TNS:listener does not currently know of SID given in connect desc
- 五个免费UML建模工具推荐
- 未来的路很长,要学会一个人走。