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


import com.swetake.util.Qrcode;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;/***  二维码生成工具类*/
public class QRCodeUtil {//生成二维码图片public static void getQrcode(String content,String imgPath) throws IOException {int width=140;int height=140;//创建二维码Qrcode  qrcode=new Qrcode();//设置二维码的纠错值qrcode.setQrcodeErrorCorrect('M');//设置二维码编码方式qrcode.setQrcodeEncodeMode('B');//设置二维码的版本,也叫信息容量qrcode.setQrcodeVersion(7);System.out.println(content);//将信息转化为字节数组byte[] contentByte=content.getBytes("gb2312");//相当于创建一个画布BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);//得到画笔Graphics2D gs=bufferedImage.createGraphics();//设置背景颜色gs.setBackground(Color.white);//画出一个矩形区域gs.clearRect(0,0,width,height);//设置图形颜色gs.setColor(Color.red);// 设置偏移量 不设置可能导致解析出错int pixoff = 2;//输出二维码图片if(contentByte.length>0 && contentByte.length<120){boolean[][] codeOut=qrcode.calQrcode(contentByte);//循环输出,形成矩阵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 {System.err.println("QRCode content bytes length = " + contentByte.length + " not in [ 0,120 ]." );}gs.dispose();bufferedImage.flush();File file=new File(imgPath);//生产二维码图片进行输出ImageIO.write(bufferedImage,"png",file);}//生成带有logo的二维码图片public static void getLogoQrcode(String content,String imgPath,int width,int height,String logoPath) throws IOException {//创建二维码Qrcode  qrcode=new Qrcode();//设置二维码的纠错值qrcode.setQrcodeErrorCorrect('M');//设置二维码编码方式qrcode.setQrcodeEncodeMode('B');//设置二维码的版本,也叫信息容量qrcode.setQrcodeVersion(7);System.out.println(content);//将信息转化为字节数组byte[] contentByte=content.getBytes("gb2312");//相当于创建一个画布BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);//得到画笔Graphics2D gs=bufferedImage.createGraphics();//设置背景颜色gs.setBackground(Color.white);//画出一个矩形区域gs.clearRect(0,0,width,height);//设置图形颜色gs.setColor(Color.black);// 设置偏移量 不设置可能导致解析出错int pixoff = 2;//输出二维码图片if(contentByte.length>0 && contentByte.length<120){boolean[][] codeOut=qrcode.calQrcode(contentByte);//循环输出,形成矩阵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 {System.err.println("QRCode content bytes length = " + contentByte.length + " not in [ 0,120 ]." );}//绘制logo图像BufferedImage img = ImageIO.read(new File(logoPath));//Image img=ImageIO.read(new File(logoPath));gs.drawImage(convertCircular(img),50,50,40,40,null);gs.dispose();bufferedImage.flush();File file=new File(imgPath);//生产二维码图片进行输出ImageIO.write(bufferedImage,"png",file);}/*** 传入的图像必须是正方形的 才会 圆形  如果是长方形的比例则会变成椭圆的* @param bi1 用户头像地址* @return* @throws IOException*/public static BufferedImage convertCircular(BufferedImage bi1) throws IOException{//这种是黑色底的// BufferedImage bi2 = new BufferedImage(bi1.getWidth(),bi1.getHeight(),BufferedImage.TYPE_INT_RGB);//透明底的图片BufferedImage bi2 = new BufferedImage(bi1.getWidth(),bi1.getHeight(),BufferedImage.TYPE_4BYTE_ABGR);Ellipse2D.Double shape = new Ellipse2D.Double(0,0,bi1.getWidth(),bi1.getHeight());Graphics2D g2 = bi2.createGraphics();g2.setClip(shape);// 使用 setRenderingHint 设置抗锯齿g2.drawImage(bi1,0,0,null);//设置颜色g2.setBackground(Color.green);g2.dispose();return bi2;}public static void fixqrcode(String content,String imgPath,String logoPath) throws Exception{int width=140;int height=140;getLogoQrcode(content,imgPath,width,height,logoPath);}public static void main(String[] args) throws Exception{//输入二维码的信息String content="my name is wangjinsheng";String time=System.currentTimeMillis()+"";//存放二维码的地址String imgPath="F:\\tmp\\"+time+".png";//产生不带有logo的二维码getQrcode(content,imgPath);//logo图片的地址String logoPath="C:\\Users\\Administrator\\Desktop\\temp\\fuwu3.jpg";String imgLogoPath="F:\\tmp\\"+time+"12.png";//生成带有logo的二维码fixqrcode(content,imgLogoPath,logoPath);System.out.println("it's great,success");}
}

java生成圆形二维码logo相关推荐

  1. PHP生成圆角二维码logo

    PHP生成圆角二维码logo composer require lorysoftwareio/simple-qrcode 如果出现持续安装不了可以用此命令: composer config repo. ...

  2. java生成文字二维码、url二维码

    java生成文字二维码.url二维码 pom: 1)生成文字二维码 java工具类: 2)url地址生成二维码 java工具类: pom: <dependency><groupId& ...

  3. JAVA生成的二维码以及给二维码添加背景图片

    JAVA生成的二维码以及给二维码添加背景图片** 1.页面只需一行代码即可(用ajax请求得不到响应,也可以用表单提交) window.location.href = "${ctx}/qrc ...

  4. 你有没有使用java生成过二维码?(一)

    作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[程序员高手之路],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技 ...

  5. Java生成解析二维码

    Java生成二维码 一.介绍 1. 理解二维码 黑点代表二进制中的1,白点代表二进制中的0,通过1和0的排列组合,在二维空间记录数据.通过图像输入设备,读取其中的内容. 2. 二维码分类 二维码有不同 ...

  6. Java生成PDF417二维码

    pdf417二维码,比较头疼,网上找老长时间的资料,最后翻出来了个Itext.jar,那么就简单的说说如何使用iText.jar生成pdf417二维码 1,老规矩下载jar文件,我的资源里有----- ...

  7. 你有没有使用java生成过二维码?(二)

    作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[程序员高手之路],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技 ...

  8. java生成彩色二维码,附带中心logo

    利用java生成二维码需要导入两个jar包,前往以下网址下载即可 http://repo1.maven.org/maven2/com/google/zxing 效果图 import java.awt. ...

  9. java生成微信二维码,带页面跳转功能

    2019独角兽企业重金招聘Python工程师标准>>> package QRCode;import java.awt.image.BufferedImage; import java ...

最新文章

  1. linux下接口持续集成,部署jenkins持续集成工具
  2. 特征工程学习,19 项实践 Tips!代码已开源!
  3. no match for call to ‘(std::__cxx11::string {aka std::__cxx11::basic_string
  4. vue post请求后台django接口Forbidden (CSRF token missing or incorrect.)
  5. 2019-11-13 惯性环节怎么写成m语言
  6. php获取继承类方法吗,php如何获取当前类名,继承中的问题?
  7. 【LeetCode】剑指 Offer 20. 表示数值的字符串
  8. 开启MySQL的binlog日志
  9. 学嵌入式必须掌握的经验
  10. Kafka负载均衡、Kafka自定义Partition、Kafk文件存储机制
  11. 最短路经典 昂贵的聘礼(1062)
  12. 服务器应用层次划分,服务器按应用层次划分的话可以分为哪几种?
  13. FastJNI导致的Android系统死机问题分析
  14. 移动H5手势密码解锁插件--demo
  15. 原油期货开户条件和流程是什么?
  16. 重置Studio 3T的试用时间
  17. TimerFd使用心得
  18. 沙漠下新雨,树木爆翠绿,没有放弃与更新,就不成其智慧。我们不必时刻刷新微博和朋友圈,比起这些,刷新自我更加重要。我们并不需要生活在别处,不需要流于表面,我们需要时常更新生命。
  19. c语言修仙键盘,最后一口气ulbsans电脑版
  20. hive笔记(与上一偏 《hadoop集群搭建》结合)

热门文章

  1. Spliterator
  2. 手把手教你用开源软件anki有效学习、长期记忆
  3. 24.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
  4. 感知器 - 西瓜好坏自动识别——python
  5. 玉米社:软文营销推广_文案内容撰写需要注意哪些问题?
  6. QGraphicsItem实现动态蝴蝶(QT5开发及实例)
  7. 机器学习笔记之狄利克雷过程(五)——基于狄利克雷过程的预测任务
  8. libc、glibc和glib的关系
  9. Intrinsics函数Tips与踩坑
  10. Pingouin: 基于pandas和numpy的统计包