java 生成二维码后叠加LOGO并转换成base64
1.代码
见文末推荐
2.测试
测试1:生成base64码
public static void main(String[] args) throws Exception {
String data = "http://www.cnblogs.com/Marydon20170307";
File logoFile = new File(QRcodeUtils.class.getResource("ewm.jpg").getPath());
BufferedImage image = QRcodeUtils.createQRCodeWithLogo(data, logoFile);
String base64 = QRcodeUtils.writeToString(image);
System.out.println(base64);
}
页面调用:
<img src="data:image/png;base64,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
PzS0PEBfvLClAAAAAElFTkSuQmCC" />
效果展示:
说明:源代码生成的图片格式已经改成了JPG,这里测试的是PNG,自己记得修改!
2018/11/29
测试2:生成图片
public static void main(String[] args) {
String data = "Marydon";
// 不带logo
BufferedImage image = createQRCode(data);
String fileName = "博客园";
File qrcodeFile = new File("d:/" + fileName + ".png");
ZxingQrcode.writeToFile(image, qrcodeFile); // 带logo
File logoFile = new File("D:\\ewm.jpg");
image = createQRCodeWithLogo(data, logoFile);
fileName = "博客园2";
qrcodeFile = new File("d:/" + fileName + ".png");
ZxingQrcode.writeToFile(image, qrcodeFile); }
说明:生成的二维码图片如果它的上级目录不存在,会创建失败!
qrcodeFile = new File("d:/测试/" + fileName + ".png");
// 文件夹不存在,自动创建文件夹
if (!qrcodeFile.exists()) {
qrcodeFile.mkdirs();
}
java 生成二维码后叠加LOGO并转换成base64的更多相关文章
- java生成二维码(带logo)
之前写过一篇不带logo的二维码实现方式,採用QRCode和ZXing两种方式 http://blog.csdn.net/xiaokui_wingfly/article/details/3947618 ...
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...
- java 生成二维码、可带LOGO、可去白边
1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...
版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...
- java生成二维码的几个方法
1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...
- php--------php库生成二维码和有logo的二维码
php生成二维码和带有logo的二维码,上一篇博客讲的是js实现二维码:php--------使用js生成二维码. 今天写的这个小案例是使用php库生成二维码: 效果图: 使用了 php ...
- 使用PHP生成二维码支持自定义logo
require_once 'phpqrcode/phpqrcode.php'; //引入类库 $text = "https://www.baidu.com/";//要生成二维码的文 ...
- java生成二维码打印到浏览器
java生成二维码打印到浏览器 解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxin ...
随机推荐
- 在Redhat 7.3中采用离线方式安装Docker
本文环境 Redhat Linux 7.3.Docker 18. 写在前面 Docker CE默认是不支持Redhat的,如果你想在Redhat安装,可以使用静态二进制包.这是我多次尝试RPM后得出的 ...
- C# 根据注册表获取当前用户的常用目录整理
1.使用C#获取当前程序或解决方案的路径 2.使用C#获取当前登录用户的相关目录 3.也可以获取当前系统通用目录 4.获取Windows系统的目录,从注册表中获取. 一.当前用户的目录,HKEY_Cu ...
- Log Shipping搭建
1. 概述 SQL Server 使用日志传送,您可以自动将“主服务器”实例上“主数据库”内的事务日志备份发送到单独“辅助服务器”实例上的一个或多个“辅助数据库”.事务日志备份分别应用于每个辅助 ...
- 数学图形之贝塞尔(Bézier)曲面
前面章节中讲了贝塞尔(Bézier)曲线,而贝塞尔曲面是对其多一个维度的扩展.其公式依然是曲线的公式: . 而之所以由曲线变成曲面,是将顶点横向连了再纵向连. 很多计算机图形学的教程都会有贝塞尔曲面的 ...
- axios post提交的Content-Type
使用axios的坑 jQuery.ajax的post提交默认的请求头的Content-Type: application/x-www-form-urlencoded而axios.post提交的请求头是 ...
- linux 如何正确的关闭mongodb
有的朋友说可以通过下面的命令关闭mongodb: killall mongodb #or kill -9 mongo-pid 上面的方法确实可以关闭mongodb,但是正确的做法不是这样子的,mong ...
- HTML5读取本地文件
本文转自:转:http://hushicai.com/2014/03/29/html5-du-qu-ben-di-wen-jian.html感谢大神分享. 常见的语言比如php.shell等,是如何读 ...
- [置顶] Hadoop2.2.0中HDFS的高可用性实现原理
在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障 ...
- 深度学习(Deep Learning)算法简介
http://www.cnblogs.com/ysjxw/archive/2011/10/08/2201782.html Comments from Xinwei: 最近的一个课题发展到与深度学习有联 ...
- 性能测试vs负载测试vs压力测试
下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...