Java小强个人技术博客站点    手机版
当前位置: 首页 >> 开源 >> QRext4j二维码生成器

QRext4j二维码生成器

43251 开源 | 2021-5-26

QRext4j一个简单易用的二维码生成器,可以自定义二维码颜色和码眼的样式。

JDK_1.8及以上,由于此生成器引用了部分JDK_1.8的特性, 如需兼容JDK_1.7,可以通过修改少许代码实现。

项目地址:https://gitee.com/iherus/qrext4j 


Maven坐标(最好是把代码DOWN下来加进来看,方便学习):


<dependency>
  <groupId>org.iherus</groupId>
  <artifactId>qrext4j</artifactId>
  <version>1.3.1</version>
</dependency>


使用示例:


import org.iherus.codegen.Codectx.LogoShape;
import org.iherus.codegen.qrcode.QrcodeConfig;
import org.iherus.codegen.qrcode.QreyesFormat;
import org.iherus.codegen.qrcode.SimpleQrcodeGenerator;

public class Qrext4jTest {
	public static void main(String[] args) throws Exception {
		String content = "http://www.javacui.com/m";  // 二维码内容
		String logoPath = "D:\\logo.jpg"; // 本地 Logo
		String logoHttp = "http://www.javacui.com/content/uploadfile/201906/thum-63181561697617.jpg"; // 在线logo
		String destPath =  "D:\\Qrext4jTest.png"; // 二维码输出地址
		
		// writeToStream
//		OutputStream out = null;
//		try {
//			out = new FileOutputStream(destPath);
//			new SimpleQrcodeGenerator().generate(content).toStream(out);
//		} finally {
//			IOUtils.closeQuietly(out);
//		}
		// 在线 Logo
//		new SimpleQrcodeGenerator().setRemoteLogo(logoHttp).generate(content).toFile(destPath);
		
		// 自定义码眼样式
		QrcodeConfig config = new QrcodeConfig(200, 200)
				.setBorderSize(2) // 外层虚线Border
			        .setPadding(10) // 二维码离虚线的填充空白
				.setMasterColor("#006400") // 二维码颜色
				.setLogoBorderColor("#DB7093") // LOGO边框颜色
				.setLogoShape(LogoShape.CIRCLE) // 圆形logo
				.setCodeEyesPointColor("#1E90FF") // 三个对焦方框为眼眶样式,中间填充点的颜色
				.setCodeEyesFormat(QreyesFormat.DR2_BORDER_R_POINT);// 三个对焦方框为眼眶样式,中间填充点的样式
		new SimpleQrcodeGenerator(config).setLogo(logoPath).generate(content).toFile(destPath);
	}
}


生成文件如下:


Qrext4jTest.png


那么借这个工具类来试下,如果包含的内容太多时,会怎么样?

改下内容,汉字占用空间是最大的,这时,二维码倒是可以生成,但是扫不出来

String content = "http://www.javacui.com/m毛泽东在延安抗日战争研究会上作《论持久战》讲演。讲演全面分析了中日战争所处的时代和中日双方的基本特点,"
				+ "阐述了中国抗日战争的持久战总方针,批驳了亡国论和速胜论,回答了困扰人们思想的种种问题,在国内外产生重大影响。" + 
				"讲演分析中日战争所处的时代和中日双方的基本特点,指出:总起来说,日本的长处是其战争力量之强,而其短处则在其战争本质的退步性、野蛮性,在其人力、"
				+ "物力之不足,在其国际形势之寡助。中国的短处是战争力量之弱,而其长处则在其战争本质的进步性和正义性,在其是一个大国家,在其国际形势之多助。"
				+ "这些特点,规定了和规定着双方一切政治上的政策和军事上的战略战术,规定了和规定着战争的持久性和最后胜利属于中国而不属于日本。";  // 二维码内容


生成的二维码文件是这样的,扫不出来,扫出来也是不对的


Qrext4jTest.png


如果想要能被识别,那就必须增加二维码图片的高度和宽度


QrcodeConfig config = new QrcodeConfig(500, 500)


再次生成的二维码文件是这样的


Qrext4jTest.png


这时二维码是可以扫出来的


QQ截图20210526103741.jpg


这里只是提一下,一般不会在二维码里面放置这么多的内容。


END

推荐您阅读更多有关于“ 谷歌 ZXing 二维码 QR码 纠错级别 ”的文章

上一篇:一个简洁的登录页面 下一篇:ZXing生成和解析二维码

猜你喜欢

发表评论:

评论:

回复 学富电商 评论于 2021-07-04 22:31
学习了学习了