一:下载Qrcode.jar,放到lib文件夹下

二:java代码

package com.test;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;

public class ErWeiMa {
public Boolean createQRCode(String content, String imgPath, String logoPath) {
try {
Qrcode qrcodeHandler = new Qrcode();
qrcodeHandler.setQrcodeErrorCorrect('M');// 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小
qrcodeHandler.setQrcodeEncodeMode('B');// N代表数字,A代表字符a-Z,B代表其他字符
qrcodeHandler.setQrcodeVersion(9);// 设置设置二维码版本,取值范围1-40,值越大尺寸越大,可存储的信息越大
byte[] contentBytes = content.getBytes("utf-8");// 设置编码格式为UTF-8
BufferedImage bufImg = new BufferedImage(168, 168, BufferedImage.TYPE_INT_RGB);
Graphics2D gs = bufImg.createGraphics();
gs.setBackground(Color.white);         // 设置背景色为白色
gs.clearRect(0, 0, 168, 168);
gs.setColor(Color.BLACK);              // 设定图像颜色 为黑色
int pixoff = 2;                        // 设置偏移量 不设置可能导致解析出错
                                       // 输出内容 > 二维码
if (contentBytes.length > 0 && contentBytes.length < 150) {
boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
for (int i = 0; i < codeOut.length; i++) {
for (int j = 0; j < codeOut.length; j++) {
if (codeOut[j][i]) {
gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
}
}
}
} else {
return false;
}
Image img = ImageIO.read(new File(logoPath));  // 实例化一个Image对象。
gs.drawImage(img, 60, 60, 45, 45, null);       // 60,60是距离gs两个边的距离,45,45是中间logo的大小
gs.dispose();
bufImg.flush();
File imgFile = new File(imgPath);
ImageIO.write(bufImg, "png", imgFile);

} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

public static void main(String[] args) {
String imgPath = "C:/Users/yjs/Desktop/logo_QRCode.png";// 最后生成的图片地址
String imgPath1 = "C:/Users/yjs/Desktop/xin.png";// 加入的logo照片
String content = "胡姐姐的博客,永远敞着门!";
ErWeiMa er = new ErWeiMa();
boolean boo = er.createQRCode(content, imgPath, imgPath1);
System.out.println(boo);
}

}

三:运行效果和所需图片

     

四:借鉴了一篇博客

地址:http://blog.csdn.net/maomao092092/article/details/29572459

java利用qrcode生成带有logo的二维码(logo位置及大小自己调)相关推荐

  1. Python qrcode 生成个性的透明二维码

    需求生成这样的批量生成这样的二维码,用MyQR生成的不是很满意,没有去细研究MyQR,所以用qrcode 和PIL生成.(欢迎批评) # _*_ coding:utf-8 _*_''' 创建时间:20 ...

  2. 利用qrcode组件实现图片转二维码

    如何实现下图效果 点击头像,弹出头像的二维码,扫描二维码,可以拿到头像的照片 实现任何炫酷的功能,都离不开前人为我们写下的组件,在这里,要实现照片转二维码,需要下载qrcode插件 在代码中导入 im ...

  3. qrcode生成一个带有图片的二维码

    import qrcode     qr = qrcode.QRCode(     version=2,     error_correction=qrcode.constants.ERROR_COR ...

  4. vue 中生成带logo的二维码vue-qr(可换背景) 利用qrcode生成二维码

    vue 中生成带logo的二维码 这里运用了一个插件 vue-qr npm install vue-qr --save <template><div><vue-qr :c ...

  5. java生成圆形二维码logo

    自定义生成二维码,可以根据自己的喜欢在二维码中添加图片.有些代码是参考网上某位大神的,如有相同之处,请给我留言,我加上您的名字或者不让参考发表,则可删除. jar提取地址: 链接: https://p ...

  6. JAVA使用barcode4j生成条形码和二维码图片以及带logo的二维码,验证码图片

    二维码 1.Maven引入barcode4j依赖 <!-- 条形码生成 --><dependency><groupId>net.sf.barcode4j</g ...

  7. Java生成中间logo的二维码(还可以加上二维码名称哦)

    最近有负责微信开发,对于微信开发的项目,肯定少不了二维码啦,正好有个这样的需求,这对不同的商品生成一个二维码,扫码即刻下单.博主就弄了一个二维码生成的工具类. 弄出来之后,产品经理又说了,中间放上公司 ...

  8. C#利用ZXing.Net生成条形码,二维码和带Logo的二维码

    本文是利用ZXing.Net在WinForm中生成条形码,二维码的小例子,仅供学习分享使用,如有不足之处,还请指正. 什么是ZXing.Net? ZXing是一个开放源码的,用Java实现的多种格式的 ...

  9. 生成带有logo的二维码

    效果 准备: <dependency><groupId>com.google.zxing</groupId><artifactId>javase< ...

最新文章

  1. 移动端video隐藏进度条_机器学习模型部署--打通前后端任督二脉
  2. P300脑机接口及数据集处理
  3. 每日一皮:公司来了个程序员鼓励师...
  4. delete 误删了全表数据
  5. String,StringBuffer,StringBuillder的一些底层实现
  6. Hadoop 配置文件 启动方式
  7. Android测试提升效率批处理脚本
  8. 力扣-5 最长回文子串
  9. POJ 3414 Pots【BFS水】
  10. data.getData()返回的Uri
  11. FLOW 3D二次开发
  12. 三维地图之cesium入门使用
  13. 【计算机组成原理】:计算机系统的组成和层次
  14. 原创分享 计算机毕业设计PySpark+LSTM+Hadoop招聘推荐系统 招聘大数据 招聘数据分析 协同过滤算法(基于物品+基于用户) 招聘可视化大屏 就业推荐系统 就业数据分析
  15. disabled spring cloud bus interation with spring cloud sleuth zipkin
  16. 匹配一个字符串的开头和结尾_我如何构建一个应用程序来展示精彩小说的开头和结尾
  17. java mq编程_MQ java 基础编程
  18. PHPBB网站如何搬迁新服务器,phpbb 安装教程
  19. postgresq的日志
  20. java: 找不到符号或者包 (eg.程序包org.neo4j.ogm.annotation不存在)

热门文章

  1. 2022年全国职业技能大赛-网络系统管理竞赛-网络模块-Ruijie-AC-SSH
  2. 在vue中使用video.js实现视频播放
  3. c++ shared_ptr的reset(), get()
  4. 【NOI科目校 信息学知识点测评-组合计数专题】展览方案
  5. 如何将excel三列数据合为一列日期数据
  6. 时光启程了岁月里所有的狼狈
  7. 国外的码农是什么状态?硅谷程序员:不加班,不穿女装
  8. JavaScript专题(三)防抖
  9. dellr420部署os_dell r420 H310/H810阵列配置教程及常见问题
  10. 有没有人可以解答一下?