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); } }
生成文件如下:
那么借这个工具类来试下,如果包含的内容太多时,会怎么样?
改下内容,汉字占用空间是最大的,这时,二维码倒是可以生成,但是扫不出来
String content = "http://www.javacui.com/m毛泽东在延安抗日战争研究会上作《论持久战》讲演。讲演全面分析了中日战争所处的时代和中日双方的基本特点," + "阐述了中国抗日战争的持久战总方针,批驳了亡国论和速胜论,回答了困扰人们思想的种种问题,在国内外产生重大影响。" + "讲演分析中日战争所处的时代和中日双方的基本特点,指出:总起来说,日本的长处是其战争力量之强,而其短处则在其战争本质的退步性、野蛮性,在其人力、" + "物力之不足,在其国际形势之寡助。中国的短处是战争力量之弱,而其长处则在其战争本质的进步性和正义性,在其是一个大国家,在其国际形势之多助。" + "这些特点,规定了和规定着双方一切政治上的政策和军事上的战略战术,规定了和规定着战争的持久性和最后胜利属于中国而不属于日本。"; // 二维码内容
生成的二维码文件是这样的,扫不出来,扫出来也是不对的
如果想要能被识别,那就必须增加二维码图片的高度和宽度
QrcodeConfig config = new QrcodeConfig(500, 500)
再次生成的二维码文件是这样的
这时二维码是可以扫出来的
这里只是提一下,一般不会在二维码里面放置这么多的内容。
END
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: