`

Java根据url生成二维码

阅读更多
package com.dc.test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.swing.filechooser.FileSystemView;

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


/* ******************  类说明  *********************
 * class       :  QrCodeUtil
 * @author     :  ncc
 * create time :  2018-3-29 下午06:17:11
 * @version    :  1.0  
 * description :  
 * @see        :                        
 * ************************************************/   
public class QrCodeUtil {

	public static void main(String[] args) {
		String url = "weixin://wxpay/bizpayurl?pr=rBtNaVe";
		String path = FileSystemView.getFileSystemView().getHomeDirectory() + File.separator + "testQrcode";
		String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";
		createQrCode(url, path, fileName);
	}

	/* ********************************************
	 * method name   : createQrCode 
	 * description   : 根据链接生成二维码
	 * @return       : String
	 * @param        : @param url
	 * @param        : @param path
	 * @param        : @param fileName
	 * @param        : @return
	 * modified      : ncc ,  2018-3-29
	 * @see          : 
	 * ********************************************/      
	public static String createQrCode(String url, String path, String fileName) {
		try {
			Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>();
			hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
			BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 500, 500, hints);
			File file = new File(path, fileName);
			if (file.exists() || ((file.getParentFile().exists() || file.getParentFile().mkdirs()) && file.createNewFile())) {
				writeToFile(bitMatrix, "jpg", file);
				System.out.println("文件路径:" + file);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	/* ********************************************
	 * method name   : writeToFile 
	 * description   : 写文件
	 * @return       : void
	 * @param        : @param matrix
	 * @param        : @param format
	 * @param        : @param file
	 * @param        : @throws IOException
	 * modified      : ncc ,  2018-3-29
	 * @see          : 
	 * ********************************************/      
	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);
		}
	}

	/* ********************************************
	 * method name   : writeToStream 
	 * description   : 写入流
	 * @return       : void
	 * @param        : @param matrix
	 * @param        : @param format
	 * @param        : @param stream
	 * @param        : @throws IOException
	 * modified      : ncc ,  2018-3-29
	 * @see          : 
	 * ********************************************/      
	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);
		}
	}

	private static final int BLACK = 0xFF000000;
	private static final int WHITE = 0xFFFFFFFF;

	/* ********************************************
	 * method name   : toBufferedImage 
	 * description   : 将字节码转换为文件
	 * @return       : BufferedImage
	 * @param        : @param matrix
	 * @param        : @return
	 * modified      : ncc ,  2018-3-29
	 * @see          : 
	 * ********************************************/      
	private 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;
	}
}

 

依赖jar包见qrcode.rar

工具类见 QrCodeUtil.rar

 

分享到:
评论

相关推荐

    java-根据网站链接url生成二维码qrcode

    总之,Java提供了一套完善的工具库,如`zxing`,使得我们可以轻松地根据网站链接URL生成二维码,并将结果保存到本地文件系统。这在移动设备上分享链接、创建应用快捷方式等方面具有极大的便利性。

    java生成二维码以及二维码转base64字符串给前端

    在Java开发中,生成二维码和将二维码转换为Base64字符串是常见的需求,尤其是在与前端交互时。这个项目提供了一种方便的方式,通过Maven依赖来实现这些功能,并且包括了一个工具类,使得操作更加简单易用。接下来,...

    Java实现的生成二维码和解析二维码URL操作示例

    Java 实现生成二维码和解析二维码 URL 操作示例 Java 是一种广泛使用的编程语言,具有强大的功能和灵活性。在实际应用中,生成二维码和解析二维码 URL 是非常常见的操作。本文将详细介绍 Java 实现生成二维码和解析...

    java实现生成二维码(包括必要jar)

    在Java编程环境中,生成二维码是一项常见的任务,尤其在移动应用、数据交换和信息展示等领域有着广泛的应用。要实现这个功能,通常需要引入第三方库。在这个压缩包中,包含了一个名为"demo"的示例文件,这很可能是...

    java 指定url地址生成二维码(去白边、添加水印、添加logo(圆形/方形))

    本教程将详细介绍如何在Java中指定URL地址生成二维码,并实现去白边、添加水印以及添加圆形或方形的Logo功能。以下是一个详尽的步骤说明: 1. **引入依赖** 要在Java中生成二维码,首先需要引入相关库,例如`...

    java GUI生成二维码

    Java GUI生成二维码是一种在Java平台上使用图形用户界面(GUI)创建和显示二维码的技术。二维码,全称为二维条形码,是一种高效的信息编码方式,能够存储大量数据,如文本、URL、联系信息等,并且可以被智能手机等...

    web项目中为某个java类生成二维码图片

    通过以上步骤,我们可以实现一个功能,即在Web项目中为Java类生成二维码图片,使移动端用户可以通过扫描轻松获取和预览相关信息。这个过程结合了二维码技术、Java编程、Web开发以及移动端交互等多个领域的知识。

    Java用qrcode生成二维码

    在Java中,生成二维码是一项常见的任务,尤其在移动应用、物联网设备和数据交换等领域。ZXing(Zebra Crossing)是一个流行的开源库,用于读取和生成多种条码和二维码,包括QR码。本篇文章将深入探讨如何使用Java和...

    java生成二维码并保存到本地

    在Java编程环境中,生成二维码并将其保存到本地是一项常见的任务,尤其在移动互联网应用、数据交换和物联网场景中。二维码(Quick Response Code)作为一种高效的信息载体,能够存储大量的文本、URL或其他数据,便于...

    基于java开发的二维码生成小程序

    除了ZXing,Java QRCode Generator是一个轻量级的库,专门用于生成二维码,它的API更简洁,适合对性能要求不高的场景。开发者可以通过简单的几行代码就能生成二维码。 此外,为了使二维码更具个性化,开发者还可以...

    根据信息生成二维码

    本文将详细探讨如何根据信息生成二维码以及相关的Web接口。 首先,生成二维码的过程通常涉及到以下几个步骤: 1. **选择编码格式**:二维码可以编码多种类型的数据,如文本、URL、电话号码、电子邮件等。不同的...

    java生成二维码工具类(带logo和文字说明) 很实用

    在Java开发中,生成二维码是一项常见的任务,尤其是在移动互联网应用中。`ZXing`(Zebra Crossing)是一个开源的二维码和条形码处理库,它提供了多种格式的编码和解码功能。本教程将深入讲解如何使用ZXing库在Java...

    将所需的内容生成二维码,再导入word中

    1. **内容输入**:确定你要生成二维码的内容,可以是纯文本、URL、电子邮箱地址、电话号码、地理位置等。 2. **选择工具**:使用二维码生成器,输入或粘贴你的内容,根据需要设置二维码的样式和参数。 3. **生成...

    java代码生成二维码.zip

    Java代码生成二维码是一种常见的编程任务,特别是在移动应用开发、数据编码和信息传递中。这个压缩包文件"java代码生成二维码.zip"显然包含了实现这一功能的Java源代码和可能的依赖库。下面将详细介绍如何在Java中...

    java解析与生成二维码图片源代码下载

    通过这个"java解析与生成二维码"的源代码,开发者可以快速理解和应用到自己的项目中。 首先,我们需要了解二维码(Quick Response Code)是一种二维条形码,能够存储更多的信息,如文本、URL、联系人信息等。Java中...

    Java二维码生成工具

    以下是一个简单的Java代码示例,展示如何使用ZXing库生成二维码: ```java import com.google.zxing.*; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import ...

    Android代码-java使用qrCode生成二维码实例中间带logo.zip

    - `java使用qrCode生成二维码实例`:可能是一个Java类,包含了实际生成二维码的逻辑,包括编码、设置Logo和生成Bitmap的过程。 通过学习这个实例,开发者可以了解如何在Android应用中集成二维码生成功能,并且掌握...

Global site tag (gtag.js) - Google Analytics