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 ...
随机推荐
- 如何进行Logstash logstash-input-jdbc插件的离线安装
我们单位的服务器位于隔离区,不允许链接互联网,因此整理了在ELK集群上离线安装Logstash的jdbc input插件的方法,供大家参考. 总体思路是需要一台中转的机器,这台机器需要能够访问互联网, ...
- .Net Core Bitmap位图处理
截止.Net Core 2.0 目前官方类库的API中不支持Bitmap System.Drawing.Primitives 这是官方的一个Drawing库,但是没有Bitmap.Graphics等很 ...
- 5分钟了解Mockito
一.什么是mock测试,什么是mock对象? 先来看看下面这个示例: 从上图可以看出如果我们要对A进行测试,那么就要先把整个依赖树构建出来,也就是BCDE的实例. 一种替代方案就是使用mocks 从图 ...
- MSSQL2008 全文索引的创建
从MSSQL2008开始,全文索引推荐的创建方式已经与2005不同了.对于字符类型的数据库,可以直接创建. CREATE UNIQUE INDEX hr_job_idx ON hr_job_datab ...
- go语言之进阶篇借助bufio实现按行读取内容
1.借助bufio实现按行读取内容 示例: package main import ( "bufio" "fmt" "io" "o ...
- go语言之进阶篇字符串操作常用函数介绍
下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...
- 在Linux中查看正在运行哪些process,杀掉一批名字相同的process
列出全部进程: ps -A 杀掉所有名为netmist的进程 killall netmist 参考资料 ============ https://www.howtogeek.com/107217/ho ...
- 网页重构应该避免的10大 CSS 糟糕用法
对于网页重构来说,CSS禅意花园 是网页布局从 table 表格转到了 html +css 的标志 .这些年来,随着我们的网站越来越复杂:html5,css3,新的技术.新的属性,越来越多的开发者开始 ...
- 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
http://www.cnblogs.com/del/archive/2010/04/16/1713886.html 跳转指令分三类:一.无条件跳转: JMP;二.根据 CX.ECX 寄存器的值跳转: ...
- 文本分类(六):使用fastText对文本进行分类--小插曲
http://blog.csdn.net/lxg0807/article/details/52960072 环境说明:python2.7.linux 自己打自己脸,目前官方的包只能在linux,mac ...