我们在生活中经常会碰到二维码,我们通过手机扫描二维码,就会获取二维码上的所包含的信息。我们仔细观察二维码不难发现,二维码首先是一张图片,这张图片只有两种颜色,黑色和白色。我们知道计算机内部的数据就是二进制0或者1来表示,这恰好与二维码的黑白两种颜色对应。

比如我们要得到一张二维码,通过扫描这张二维码,就可以得到http://www.baidu.com(百度网址)这样的功能。思路就是首先我们将"http://www.baidu.com"这个网址的字符串变为用ASCII码表示的数组,我们知道每个英文字符的ASCII码为8位,不足8位我们通过在前面补0来实现。这样我们就可以得到一个二维数组,然后将二维数组通过UI画出来既可以得到简单的二维码样式。实现代码如下:

public class QrUI extends JFrame {public int[][] StringToBinary(String codeStr) {String str="http://www.baidu.com";int strlength=str.length();int[][] binaryArr=new int[strlength][8];for (int i = 0; i < strlength; i++) {char c=str.charAt(i);String cbinarycode=Integer.toBinaryString(c);
//          不足8位的补码,得到字符串每个字符的8位ASCII码int cbinaryCodelength=cbinarycode.length();while (cbinaryCodelength<8) {cbinarycode="0"+ cbinarycode;cbinaryCodelength++;}
//          将数据存储在一个二维数组中for (int j = 0; j < cbinaryCodelength; j++) {binaryArr[i][j]=cbinarycode.charAt(j);}}return binaryArr;public void initiUI() {this.setTitle("二维码");this.setSize(500,500);this.setDefaultCloseOperation(3);this.setVisible(true);}@Overridepublic void paint(Graphics g) {super.paint(g);int[][] arr=StringToBinary(null);for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {int num=arr[i][j];// 将黑白两种颜色与0和1对应起来if (num==48) {g.setColor(Color.WHITE);}else {g.setColor(Color.black);}g.fillRect(100+i*20, 100+j*20, 20, 20);}}}}public static void main(String[] args) {QrUI qr=new QrUI();qr.initiUI();}
}

最终我们可以得到如下图所示的图片。

java-画出二维码相关推荐

  1. java生成圆形二维码logo

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

  2. python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容

    python3 + opencv +pyzbar实时检测二维码 / 定位二维码,并绘制出二维码的框和提取二维码内容 1 pyzbar二维码检测模块 1.1. pyzbar模块介绍 1.2 pyzbar ...

  3. Java解析生成二维码-log

    Java解析生成二维码 1.pom.xml依赖 <!-- 引入二维码相关的依赖--><dependency><groupId>com.google.zxing< ...

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

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

  5. Java后台生成二维码

    今天做了一下生成二维码的两种方式 第一种就是前台调用接口去生成二维码,第二种就是后台生成二维码 既然我们是后台开发人员,我这里就写后台代码了,后台代码实现很简单,说白了大家调用一个工具类就OK啦. 工 ...

  6. Java 快速开发二维码生成服务

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 不知道从什么 ...

  7. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  8. Java中识别二维码并且提高二维码的识别率

    我们在Java开发的时候,发现对二维码的识别是不足的.所以我们需要提高识别率. 第一步.识别图片二维码.准备相应的jar包.我们在gradle+idea中开发. compile group: 'com ...

  9. java实现生成二维码及扫码登录

    java实现生成二维码及扫码登录 1. 场景描述 2. 实现思路 3. 代码实现过程 3.1 pom.xml 3.2 二维码工具类 3.3 生成二维码并下载为图片 3.4 扫码登录 1. 场景描述   ...

  10. 用java实现表白二维码(附源码)

    用java实现表白二维码(附源码) 以下源码可以实现生成一个表白二维码,扫描二维码就能看到二维码里蕴藏的信息. import com.google.zxing.BarcodeFormat;import ...

最新文章

  1. Android Studio 设置git 提交代码
  2. 用java爬取学校数据_Java爬取校内论坛新帖
  3. python编程可视化小程序_人人都可以写的可视化Python小程序第二篇:旋转的烟花...
  4. python将csv文件拆分_【中年阿姨python入门】CSV文件拆分(DictReaderDictWriter)
  5. Note:一些优化建议
  6. 与大佬零距离交流,在行业报告留名,智源社区招募兼职编辑!
  7. set的用法及短语_人教版九全Unit 14重点短语、重点句型、课文讲解
  8. Leetcode-937-Reorder Log Files-(Easy)
  9. 完美解决idea继承maven后,构建项目慢的问题
  10. leetcode与python进阶学习总结
  11. 从 FFmpeg 性能加速到端云一体媒体系统优化
  12. 分析工厂模式中的问题并改造
  13. python csv读写方法_python中csv文件的若干读写方法小结
  14. mysql连接idea详细教程_idea配置连接数据库的超详细步骤
  15. 多目标遗传算法与优化的关系
  16. ajax跨域访问问题
  17. Spring源码编译及阅读源码入门
  18. win10的计算机 桌面图标不见了怎么办,Win10我的电脑怎么放在桌面?Win10此电脑图标不见了的解决方法...
  19. 解决Loadrunner打开网页证书错误问题
  20. Android 之 APP上架应用宝平台

热门文章

  1. Flex弹性盒子(一篇带你掌握潮流 Flex 布局)
  2. 2022年全球及中国工业五金垫圈行业研究
  3. doxygen html chm,使用Doxygen生成全中文的chm帮助文档
  4. 大数据在高校的应用场景_大数据在高校中的应用研究
  5. SylixOS中的中断服务对象
  6. 洛谷 P3975 [TJOI2015]弦论 解题报告
  7. WSL下源码阅读工具LXR(Linux Cross-Referencer)的配置
  8. 用线程加锁模拟红绿灯
  9. 视频资源网站采集-视频资源API采集教程
  10. ppt不能保存我html,powerpoint无法保存怎么解决